我想获取目录中的文件列表,但我想对其进行排序,以便最旧的文件排在第一位。我的解决方案是调用 File.listFiles 并根据 File.lastModified 重新排序列表,但我想知道是否有更好的方法。
编辑:按照建议,我当前的解决方案是使用匿名比较器:
File[] files = directory.listFiles(); Arrays.sort(files, new Comparator<File>(){ public int compare(File f1, File f2) { return Long.valueOf(f1.lastModified()).compareTo(f2.lastModified()); } });
我认为您的解决方案是唯一明智的方法。获取文件列表的唯一方法是使用File.listFiles()并且文档指出这不能保证返回文件的顺序。因此,您需要编写一个使用File.lastModified()的Comparator并将其与文件数组一起传递给Arrays.sort()。