1

我想在java中将目录中的文件排序为最旧的,以对(FIFO原则)中的文件执行一些操作。为此,我在每个苍蝇对象上使用 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 中对于在一秒钟内进入目录的文件失败。

请建议一些解决方法?

4

1 回答 1

0

在我的Ubuntu机器上,时间戳以13数字形式返回,即。毫秒。你能检查一下你的linux机器上的系统时钟是否设置正确吗?

因此,您可以在几秒钟内应用比较。

long lastModified1 = (o1.lastModified()/1000)
long lastModified2 = (o2.lastModified()/1000)

return Long.valueOf(lastModified1).compareTo(lastModified2);
于 2012-09-07T10:06:08.030 回答