지정한 폴더의 파일을 날짜, 크기, 이름으로 정렬하기

2259 단어
폴더의 파일 목록 가져오기;
클래스 정의
CODE:

class SortFile {
    long size;
    long date;
    String name;
    public SortFile(String name, long date, long size) {
        this.name = name;
        this.date = date;
        this.size = size;
    }

    public static SortFile[] sort(SortFile[] src, String mark, boolean rule) {
        if (rule) {//
            for (int i = src.length; i > 1; i--) {
                for (int j = 0; j < i - 1; j++) {
                    boolean change = false;
                    if (mark.equals("name")) {
                        if (src[j].name.compareTo(src[j + 1].name) > 0)
                            change = true;
                    } else if (mark.equals("date")) {
                        if (src[j].date > src[j + 1].date)
                            change = true;
                    } else {
                        if (src[j].size > src[j + 1].size)
                            change = true;

                    }
                    if (change) {
                        SortFile temp = src[j];
                        src[j] = src[j + 1];
                        src[j + 1] = temp;
                    }
                }
            }
        } else {
            // > <
        }
        return src;
    }
}

이렇게 하면 디렉토리에서 파일이 생성됩니다.
CODE:

ArrayList al = new ArrayList();
File f = new File(dir);
String[] names = f.list();
for (int i = 0; i < names.length; i++) {
    File fs = new File(f, names[i]);
    SortFile sf = new SortFile(name[i], fs.length(), fs.lastModified);
    al.add(sf);
}

마지막으로 알을 그룹으로 변환하기
SortFile[] sfSrc = new SortFile[al.size()];
for(i=0;isfSrc[i] = (SortFile) al.get(i);
이렇게 하면 너는 어떤 줄에 따라 명칭을 전달하고, 승강전boolean
예:\
SortFile[] forName = SortFile.sort(sfSrc,"name",true);
얻은 Array List를 정렬된 알로 되돌려줍니다. 이 때 여러 번 훑어보았기 때문에 그룹만 가장 빠릅니다.알을 수조로 바꾸는 데 단지 한 시간 단위의 비용이 많이 들었을 뿐, 아래에 수조로 채우면 만 개의 시간 단위가 줄어든다.

좋은 웹페이지 즐겨찾기