按时间顺序获取文件列表

发布于 2018-08-21  19 次阅读


在写oj时,与判题机对接时遇到了需要提供按时间排序的文件列表,折腾了会儿,所以记录下

public static List<File> getFileSort (String path){
    List<File> list = getFiles(path, new ArrayList<File>());
    if (list != null && list.size() > 0) {
        Collections.sort(list, new Comparator<File>() {
            public int compare(File file, File newFile) {
                if (file.lastModified() < newFile.lastModified()) {
                    return 1;
                } else if (file.lastModified() == newFile.lastModified()) {
                    return 0;
                } else {
                    return -1;
                }
            }
        });
    }
    return list;
}
/**
 *
 * 获取目录下所有文件
 *
 * @param realpath
 * @param files
 * @return
 */
public static List<File> getFiles (String realpath, List < File > files){
    File realFile = new File(realpath);
    if (realFile.isDirectory()) {
        File[] subfiles = realFile.listFiles();
        for (File file : subfiles) {
            if (file.isDirectory()) {
                getFiles(file.getAbsolutePath(), files);
            } else {
                files.add(file);
            }
        }
    }
    return files;
}