我想在java中将目录中的文件按照最早的顺序排序,以对其中的文件执行一些操作(先进先出原则)。 为此,我在每个飞行对象上使用lastmodified方法,然后通过比较器对它们进行比较,这给了我如下所示的排序列表
public static ArrayList<File> sortListAscending(ArrayList<File> list) {
Collections.sort(list, new Comparator<File>() {
public int compare(final File o1, final File o2) {
return new Long(((File) o1).lastModified()).compareTo(new Long(
((File) o2).lastModified()));
}
});
return list;
}
当我在 Windows 上运行此命令时,我会返回一个 13 位时间戳,而在 unix 中时间戳不可达毫秒。 因此,对于在该一秒时间范围内进入目录的文件,上述方法在 unix 中失败。
请建议一些解决方法?
最佳答案
在我的 Ubuntu
机器上,时间戳以 13
位返回,即。毫秒。你能检查一下你的 Linux 机器上的系统时钟是否设置正确吗?
因此您可以在几秒钟内进行比较。
long lastModified1 = (o1.lastModified()/1000)
long lastModified2 = (o2.lastModified()/1000)
return Long.valueOf(lastModified1).compareTo(lastModified2);
关于Java:aix中的文件lastmodified itimestamp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12315331/