//요구사항] 파일명을 아래와 같이 변경하시오.
import java.io.*;
class Test23_FileIO
{
public static void main(String[] args)
{
File dir = new File("E:\\luckyphil\\청년취업아카데미\\01java\\test\\파일입출력관련테스트\\문제1");
File[] fileList = dir.listFiles();
int fileCount = getFileCount(fileList); //디렉토리의 파일의 갯수
System.out.println("디렉토리에 있는 파일의 갯수 : "+fileCount);
for(int i=0; i< fileList.length; i++) {
String fileName = "";
if(fileList[i].isFile()) { //파일이 맞다면
fileName = fileList[i].getName(); //파일 이름 추출
System.out.println("기존 파일 이름 : "+fileName);
//변경할 파일 객체 생성
File oldFile =
new File("E:\\luckyphil\\청년취업아카데미\\01java\\test\\파일입출력관련테스트\\문제1\\"+fileName);
String numbering = getNumbering(fileCount,i);
fileName = numbering+fileName; //파일 이름에 변경될 넘버링 추가
System.out.println("변경될 파일 이름 : "+fileName);
//변경될 파일 객체 생성
File newFile =
new File("E:\\luckyphil\\청년취업아카데미\\01java\\test\\파일입출력관련테스트\\문제1\\"+fileName);
oldFile.renameTo(newFile); //변경 실행
System.out.println(i+"번째 파일 변경 실행 완료");
}
}//end i
}//end main
//디렉토리 요소들 중 파일의 갯수만 반환
public static int getFileCount(File[] list) {
int count = 0; //파일이 아닌 요소의 갯수
int len = 0; //파일의 갯수
for(File result : list) {
if(!result.isFile()) { //파일이아니면
count++;
}
}
len = list.length-count;
return len;
}//end getFileCount()
//총 파일 갯수에 대한 numbering 구현 메서드
public static String getNumbering(int length, int num) {
String numbering = "";
if(length > 0 && length < 10) //파일 갯수 10개 미만
{
numbering = "["+(num+1)+"]";
}else if (length < 100) //파일 갯수 10 ~ 100개 미만
{
if(num < 10)
numbering = "[0"+(num+1)+"]";
else
numbering = "["+(num+1)+"]";
}else if (length < 1000) //파일 갯수 100 ~ 1000개 미만
{
if(num < 10)
numbering = "[00"+(num+1)+"]";
else if(num <100)
numbering = "[0"+(num+1)+"]";
else
numbering = "["+(num+1)+"]";
}else //파일 갯수 1000개 초과
{
if(num < 10)
numbering = "[000"+(num+1)+"]";
else if(num <100)
numbering = "[00"+(num+1)+"]";
else if(num < 1000)
numbering = "[0"+(num+1)+"]";
else
numbering = "["+(num+1)+"]";
}
return numbering;
}//end getNumbering()