1

フォルダに追加されたファイルのFIFO処理を確実にする方法はJavaにありますか?プラットフォームに依存しないソリューションを探しています。私は現在、ディレクトリからすべてのファイルを取得するためにlistFiles()メソッドinを使用java.io.Fileしていますが、このメソッドを使用して見つかったファイルの順序を保証するものではないことを読みました。最後に変更された日付に基づいてファイルを並べ替えることも考えましたが、これは信頼性が低く、FIFOを保証するものではありません。誰か他に何かアイデアはありますか?

Java 6を使用する必要がありますが、Java7はオプションではありません。

4

1 に答える 1

2

このFile.listFiles()メソッドは、指定されていないプラットフォームに依存する順序でファイルを返します。

ディレクトリ内のファイルを処理中に変更しない場合は、Fileリストの並べ替えが機能するはずです。

ディレクトリ内のファイルが変更される可能性がある場合、ファイルとその変更時刻の「スナップショット」を取得する方法はありません。ただし、Java 7WatchServiceを使用してディレクトリの追加とファイルの変更を追跡し、それを使用して、ディレクトリの一覧表示と並べ替えの実行中および実行後に発生する変更を処理することができます。


Java 6 の Java 7 WatchService に相当するものはありません。そのようなものが必要な場合は、外部プログラムを使用してファイル名を正しい順序で Java にフィードするか、JNI とネイティブ コードを使用して OS と対話します。 -レベルのファイル/ディレクトリ監視サービス。

于 2012-10-16T14:30:16.990 に答える