名前と拡張子に基づいてファイルを並べ替える必要があります。そのために apache commons-io RegexFileFilter を使用します。ファイル名のパターンは、「filename.xml.20130101200」または「filename.xml.20130101200.inprog」のようなもので、数字は単純なタイムスタンプです。
FileFilter regexFilter = new RegexFileFilter( ".*\\d{12}|.*inprog" );
File[] suitableFiles = dir.listFiles( regexFilter );
これらのファイルを含むこのディレクトリが私のホーム ディレクトリ "/home/user/files" にある場合、jboss で実行するとすべて正常に動作します。しかし、フォルダーを「/tmp/files/」に変更すると、フィルターは「.inprog」拡張子のファイルを検索します。ディレクトリにファイルの数を記録すると、正しい量が表示されます。テスト用に簡単なメイン プログラムを作成しましたが、ファイルが /tmp/files にある場合でも、すべて正常に動作します。Jboss は、私のホーム フォルダーにあります。
何が問題なのですか?