我有一个 Java 工具,可以生成 100,000 多个文件,我随后在流程的“步骤 2”中使用这些文件。由于“第 2 步”的性质,我不想要任何大于 1MB 的文件。这是我用来删除这些文件的代码:
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。