次のフォルダがあります。C:\\Users\..myfolder
.pdf
ファイル(または.csvなどのその他のファイル)が含まれています。それらのファイルの名前を変更することはできません。それらのファイルの数もわかりません。すべてのファイルを 1 つずつループする必要があります。これどうやってするの?
(名前を知っていれば、これを行う方法を知っています)
使うだけ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()
、ファイル拡張子フィルターを自分で実装するよりも便利です。
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
}
}
メソッドを使用Java.io.File.listFiles()
して、フォルダー内のすべてのファイルとフォルダーのリストを取得できます。