可能重复:
如何在 Java 目录中找到最后修改的文件?
我有一个需要检查更改的文件目录。我认为当其中一个文件modifiedDate
比我上次检查时记得的更新时它发生了变化(这意味着缓存依赖项)。
在Java目录中查找最新修改文件的最快方法是什么?
也许我太乐观了,但我明确地寻找不涉及迭代所有文件的东西。
此外,检查目录修改日期是不够的,因为这仅在内部文件列表更改时才会更改,而不是在文件本身刚刚修改时更改。
可能重复:
如何在 Java 目录中找到最后修改的文件?
我有一个需要检查更改的文件目录。我认为当其中一个文件modifiedDate
比我上次检查时记得的更新时它发生了变化(这意味着缓存依赖项)。
在Java目录中查找最新修改文件的最快方法是什么?
也许我太乐观了,但我明确地寻找不涉及迭代所有文件的东西。
此外,检查目录修改日期是不够的,因为这仅在内部文件列表更改时才会更改,而不是在文件本身刚刚修改时更改。
即使您不希望迭代所有文件,任何用于查找此文件的第三方 API 都会迭代所有文件。
JDK 7 旨在具有 java.nio.WatchService,它显然会在必要时遍历所有内容,但会使用文件系统支持来完全按照您的要求进行操作。不利的一面是,那仍然是未来。
请参阅此解决方案:如何使用 Java 从目录中仅获取 10 个最后修改的文件?
它是纯 java 代码,但有一个简单的 hack 来提高性能。
您必须迭代所有文件名并提取修改日期。
我认为这是不可能的。您可以使用 Runtime 类从 java "ls -lrt | tail -1" 执行 unix 命令行并解析字符串以获取最新修改文件的名称