求助大神~~~java按时间顺序,读取文件夹下的所有文件(时间最早的先读取,就是最老的那个)

2025-03-24 12:13:57
推荐回答(3个)
回答1:

/**
 * @param args
 */
public static void main(String[] args) {

String path = "d:\\test";

List list = getFileSort(path);

for (File file : list) {
System.out.println(file.getName() + " : " + file.lastModified());
}
}

/**
 * 获取目录下所有文件(按时间排序)
 * 
 * @param path
 * @return
 */
public static List getFileSort(String path) {

List list = getFiles(path, new ArrayList());

if (list != null && list.size() > 0) {

Collections.sort(list, new Comparator() {
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 getFiles(String realpath, List 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;
}

回答2:

我的暂时的解决办法 把文件夹下的文件按照时间排序即可。
终极解决办法 首先获取文件的最后修改时间 long modify = f.lastModified(); // 修改时间
然后按照修改时间进行排序显示即可。

回答3:

先按时间排序