可能重复:
How do I find the last modified file in a directory in Java?
我有一个文件目录,我需要检查更改。我认为当其中一个文件的modifiedDate
比我上次检查时记住的更新时(这意味着缓存依赖性),它会发生变化。
在Java目录中查找最新修改文件的最快方法是什么?
也许我太乐观了,但我明确地寻找一些不涉及迭代所有文件的东西。
此外,检查目录修改日期是不够的,因为这只会在文件列表内部更改时更改,而不是在其中一个文件本身被修改时更改。
答案 0 :(得分:2)
即使您不想迭代所有文件,您用来查找此文件的任何第三方API都会迭代所有文件。
JDK 7旨在拥有java.nio.WatchService,如果必须,它将显然遍历所有内容,但将使用文件系统支持来完全按照您的要求进行操作。在负面,that's still in the future。
答案 1 :(得分:1)
您必须迭代所有文件名并提取修改日期。
答案 2 :(得分:1)
请参阅此解决方案:How to get only 10 last modified files from directory using Java?
它是纯Java代码,但有一个简单的黑客来提高性能。
答案 3 :(得分:0)
我认为这是不可能的。您可以使用Runtime类从java“ls -lrt | tail -1”执行unix命令行,并解析该字符串以获取最新修改文件的名称