我需要根据文件的日期对文件进行排序。我已经成功编写了代码,该代码根据上次修改对文件进行排序,但帮助我根据文件的日期对文件进行排序。较旧的文件应该先出现。
File dir = new File("E:\\myfiles");
File[] files = dir.listFiles();
Arrays.sort(files, new Comparator<File>() {
public int compare(File f1, File f2)
{
return Long.valueOf(f1.lastModified()).compareTo(f2.lastModified());
}
});
for (int i = 0; i < files.length; i++)
System.out.println(files[i]);
我的文件是
E:\myfiles\test_20140704.csv
E:\myfiles\test_20140705.csv
E:\myfiles\test_20140703.csv
E:\myfiles\test_20140706.csv
最佳答案
如果您只是想按文件名称排序(基于问题中提供的语法)。只需更改比较方法即可。
File dir = new File("E:\\myfiles");
File[] files = dir.listFiles();
Arrays.sort(files, new Comparator<File>() {
public int compare(File f1, File f2)
{
//return Long.valueOf(f1.lastModified()).compareTo(f2.lastModified());
return f1.getName().compareTo(f2.getName());
}
});
(根据您的最新评论,以下内容不相关)
文件类不支持获取创建时间。但是 Java 7 有一个功能可以提供帮助
BasicFileAttributes attr = Files.readAttributes(file, BasicFileAttributes.class);
System.out.println("creationTime: " + attr.creationTime());
System.out.println("lastAccessTime: " + attr.lastAccessTime());
System.out.println("lastModifiedTime: " + attr.lastModifiedTime());
参见http://docs.oracle.com/javase/tutorial/essential/io/fileAttr.html
关于java - 使用 Java 根据日期对文件进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24607912/