プロセスの「ステップ 2」で後で使用する 100,000 以上のファイルを生成する Java ツールがあります。「ステップ 2」の性質上、1 MB を超えるファイルは必要ありません。これらのファイルを削除するために使用していたコードは次のとおりです。
File[] files = root.listFiles();
for (File file : files) {
if (file.isFile()) {
if (file.length > 1048576) { //size of MB
//delete the file
file.delete();
}
}
}
ファイルの数が比較的少ない場合、これはうまく機能していました。ただし、n > 100,000 の場合、listFiles() を呼び出すと、メモリの制約によりシステムがクラッシュします。ファイルの種類に基づいて結果をフィルター処理できることは知っていますが、ファイル サイズに基づいてフィルター処理を行う方法はありますか? または、システムをクラッシュさせずに、ファイル サイズに基づいて大量のバッチを簡単に削除できる別の方法はありますか?
FWIW、RedHat 6 を実行しています。