如何使用Java获取具有最新上次修改日期的文件?

时间:2010-07-29 13:36:33

标签: java file last-modified

  

可能重复:
  How do I find the last modified file in a directory in Java?

我有一个文件目录,我需要检查更改。我认为当其中一个文件的modifiedDate比我上次检查时记住的更新时(这意味着缓存依赖性),它会发生变化。

在Java目录中查找最新修改文件的最快方法是什么?


也许我太乐观了,但我明确地寻找一些不涉及迭代所有文件的东西。

此外,检查目录修改日期是不够的,因为这只会在文件列表内部更改时更改,而不是在其中一个文件本身被修改时更改。

4 个答案:

答案 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命令行,并解析该字符串以获取最新修改文件的名称