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은?
2013. 7. 25. 16:31


public static void main(String[] args) throws IOException {
 
    // BufferedReader reader = new BufferedReader(new
    // FileReader("data\\directory.txt"));
    // String dir = reader.readLine();
    // reader.close();
    String dir = "D:\\Documents";
 
    getResult(dir);
    System.out.printf("크기%,d, 파일%,d개, 폴더%,d\n", sizeSum, fileCnt, folderCnt);
}
 
static int fileCnt = 0, folderCnt = 0;
static long sizeSum = 0;
 
private static void getResult(String directory) // static 멤버 변수에 값 누적
{
    File dir = new File(directory);
    File[] list = dir.listFiles();
 
    for (File i : list) { // 현재경로의 폴더, 파일 갯수 합산
        if (i.isDirectory()) {
            getResult((i.getAbsoluteFile()) + ""); // 중단하고 발견한 폴더에서 재탐색
            folderCnt++;
        } else if (i.isFile()) {
            fileCnt++;
            sizeSum += i.length();
        }
    }
}
 
 
크기11,139,473, 파일35개, 폴더5


'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은?
2013. 7. 25. 16:30


public static void main(String[] args) {
    int a = 0, b = 0, c = 1;
 
    int sum = 1;
    System.out.print("1 + ");
 
    for (;;) {
        a = b;
        b = c;
        c = a + b;
 
        sum += c;
 
        System.out.printf("%d + ", c);
 
        if (c == 34) {
            System.out.printf("\b\b= %d", sum);
            break;
        }
    }
}
 
 
1 + 1 + 2 + 3 + 5 + 8 + 13 + 21 + 34 = 88


'java' 카테고리의 다른 글

파일명 일괄변경  (0) 2013.07.25
폴더정보(폴더, 파일의 용량과 갯수) 출력  (0) 2013.07.25
로또생성기  (0) 2013.07.25
세로형 성적 그래프  (0) 2013.07.25
Callendar 클래스 없이 달력만들기  (0) 2013.07.25
Posted by 1+1은?
2013. 7. 25. 16:30



'java' 카테고리의 다른 글

폴더정보(폴더, 파일의 용량과 갯수) 출력  (0) 2013.07.25
피보나치  (0) 2013.07.25
세로형 성적 그래프  (0) 2013.07.25
Callendar 클래스 없이 달력만들기  (0) 2013.07.25
숫자를 한글로 변환(금액단위)  (0) 2013.07.25
Posted by 1+1은?
2013. 7. 25. 16:29



'java' 카테고리의 다른 글

피보나치  (0) 2013.07.25
로또생성기  (0) 2013.07.25
Callendar 클래스 없이 달력만들기  (0) 2013.07.25
숫자를 한글로 변환(금액단위)  (0) 2013.07.25
검색어 발견 카운터  (0) 2013.07.25
Posted by 1+1은?