Java中是否有任何方法可以确保对添加到文件夹的文件进行FIFO处理。我正在寻找一个独立于平台的解决方案。我目前正在使用listFiles()
in 方法java.io.File
从目录中获取所有文件,但我已经读过它不保证使用此方法找到的文件的任何顺序。我还考虑过根据文件的最后修改日期对文件进行排序,但这是不可靠的,并且不能确保 FIFO。有没有人有任何其他想法?
我必须使用 Java 6,Java 7 不是一个选项。
该File.listFiles()
方法以未指定的平台相关顺序返回文件。
如果目录中的文件在您处理它们时不会被更改,那么对File
列表进行排序应该可以工作。
如果目录中的文件容易更改,那么您将无法获得文件及其修改时间的“快照”。但是您可能会使用 Java 7WatchService
来跟踪目录添加和文件更改,并使用它来处理目录列表和排序期间和之后发生的更改。
Java 6 中没有与 Java 7 WatchService 等效的东西。如果你想要那种东西,你要么使用外部程序以正确的顺序将文件名提供给 Java,要么使用 JNI 和本机代码与操作系统交互级文件/目录监视服务。