4

次のフォルダがあります。C:\\Users\..myfolder

.pdfファイル(または.csvなどのその他のファイル)が含まれています。それらのファイルの名前を変更することはできません。それらのファイルの数もわかりません。すべてのファイルを 1 つずつループする必要があります。これどうやってするの?

(名前を知っていれば、これを行う方法を知っています)

4

4 に答える 4

5

使うだけFile.listFiles

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

を使用し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
    }
}

厄介なFileNameExtensionFilterことに、javax.swingパッケージから取得されるため、API で直接使用することはできませんがlistFiles()、ファイル拡張子フィルターを自分で実装するよりも便利です。

于 2013-10-04T20:54:22.683 に答える
3

File.listFiles()フォルダー内のファイルの配列を提供します。次に、ファイル名を分割して拡張子を取得し、それが .pdf.

File[] files = new File("C:\\Users\..myfolder").listFiles();
for (File file : files) {
    if (!file.isFile()) continue;

    String[] bits = file.getName().split(".");
    if (bits.length > 0 && bits[bits.length - 1].equalsIgnoreCase("pdf")) {
        // Do stuff with the file
    }
}
于 2013-10-04T20:56:01.830 に答える
2

メソッドを使用Java.io.File.listFiles()して、フォルダー内のすべてのファイルとフォルダーのリストを取得できます。

于 2013-10-04T20:56:21.637 に答える