如何遍历文件夹中的所有文件(如果文件名未知)?

Bur*_*ras 4 java loops

有一个文件夹: C:\\Users\..myfolder

它包含.pdf文件(或任何其他文件,例如 .csv)。我无法更改这些文件的名称,而且我不知道这些文件的数量。我需要一个一个地循环所有文件。我怎样才能做到这一点?

(如果我知道名字,我就知道该怎么做)

Bor*_*der 5

只需使用 File.listFiles

final File file = new File("whatever");
for(final File child : file.listFiles()) {
    //do stuff
}
Run Code Online (Sandbox Code Playgroud)

您也可以使用FileNameExtensionFilter来过滤文件

final FileNameExtensionFilter extensionFilter = new FileNameExtensionFilter("N/A", "pdf", "csv"//, whatever other extensions you want);
final File file = new File("whatever");
for (final File child : file.listFiles()) {
    if(extensionFilter.accept(child)) {
        //do stuff
    }
}
Run Code Online (Sandbox Code Playgroud)

烦人的FileNameExtensionFilter是来自javax.swing包所以不能直接在listFiles()api中使用,还是比自己实现文件扩展名过滤器方便多了。