2013. 7. 25. 16:31


private static void m001() {
    // 문제1. 파일명을 아래와 같이 변경하시오.
    // 보기] aaa.txt
    // bbb.txt
    // 안녕.hwp
    // hello.java
    // 실행]
    // 결과] [01]aaa.txt
    // [02]bbb.txt
    // [03]안녕.hwp
    // [04]hello.java
    // 코드] renameTo : 파일명바꾸기
    // aaa.txt -> [01]aaa.txt
    // 조건] 해당 폴더 파일의 갯수가 10개 미만이면 숫자를 1자리
    // 해당 폴더 파일의 갯수가 100개 미만이면 숫자를 2자리
    // 해당 폴더 파일의 갯수가 1000개 미만이면 숫자를 3자리
 
    File dir = new File("D:\\temp\\AAA"); // 작업경로 지정
    String path = dir.getPath(); // dir의 경로 문자열
    File[] list = dir.listFiles(); // dir의 배열 list선언
 
    int fileCnt = 0; // 카운터
 
    for (File i : list) {
        if (i.isFile())
            fileCnt++; // file/folder 필터링
    }
 
    int totalLen = (fileCnt + "").length(); // (변경할 파일의 총 갯수)의 자릿수
    fileCnt = 0;
 
    for (int i = 0; i < list.length; ++i) { // i=0 ~ dir 구성원의 갯수만큼
        String reName = path + "\\[";
        if (list[i].isFile()) { // 파일일 경우에만
            fileCnt++;
            int cntLen = (fileCnt + "").length();
            if (cntLen < totalLen) {
                for (int j = cntLen; j < totalLen; ++j) {
                    reName += "0";
                }
            }
            reName += fileCnt + "]" + list[i].getName();
            System.out.println(reName);
        }
    }
}


아래가 더 간단함


private static void m002() {
    String path = "D:\\temp"; // dir의 경로 문자열
    File dir = new File(path); // 작업경로 지정
    File[] list = dir.listFiles(); // dir의 배열 list선언
 
    int fileCnt = 0; // 카운터
 
    for (File i : list) {
        if (i.isFile())
            fileCnt++; // file/folder 필터링
    }
 
    int totalLen = (fileCnt + "").length(); // (변경할 파일의 총 갯수)의 자릿수
    fileCnt = 0;
 
    for (int i = 0; i < list.length; ++i) {
        if (list[i].isFile()) {
            String txt1 = String.format("\\\\[%%0%dd]", totalLen);
            String txt2 = String.format(txt1, ++fileCnt);
            File dest = new File(path + txt2 + list[i].getName());
 
            System.out.println(dest.getAbsolutePath());
        }
    }
}


'java' 카테고리의 다른 글

연산자 우선순위  (0) 2013.07.25
제어문  (0) 2013.07.25
폴더정보(폴더, 파일의 용량과 갯수) 출력  (0) 2013.07.25
피보나치  (0) 2013.07.25
로또생성기  (0) 2013.07.25
Posted by 1+1은?