myDirectoryPath
にディレクトリ名がある場合、
import Java.io.File;
...
File dir = new File(myDirectoryPath);
File[] directoryListing = dir.listFiles();
if (directoryListing != null) {
for (File child : directoryListing) {
// Do something with child
}
} else {
// Handle the case where dir is not really a directory.
// Checking dir.isDirectory() above would not be sufficient
// to avoid race conditions with another process that deletes
// directories.
}
私はあなたが望むものを作るために非常に多くの方法があると思います。これが私が使用する方法です。 commons.io
ライブラリを使用すると、ディレクトリ内のファイルを反復処理できます。 FileUtils.iterateFiles
メソッドを使用する必要があり、各ファイルを処理できます。
ここで情報を見つけることができます: http://commons.Apache.org/proper/commons-io/download_io.cgi
次に例を示します。
Iterator it = FileUtils.iterateFiles(new File("C:/"), null, false);
while(it.hasNext()){
System.out.println(((File) it.next()).getName());
}
フィルタリングしたい場合は、null
を変更し、エクステンションのリストを配置できます。例:{".xml",".Java"}
デスクトップ上のすべてのファイルを一覧表示する例を次に示します。パス変数をパスに変更する必要があります。
System.out.printlnを使用してファイルの名前を出力する代わりに、ファイルを操作する独自のコードを配置する必要があります。
public static void main(String[] args) {
File path = new File("c:/documents and settings/Zachary/desktop");
File [] files = path.listFiles();
for (int i = 0; i < files.length; i++){
if (files[i].isFile()){ //this line weeds out other directories/folders
System.out.println(files[i]);
}
}
}
Java.io.File.listFiles を使用します
または
繰り返し(またはより複雑なユースケース)の前にリストをフィルタリングする場合は、Apache-commons FileUtilsを使用します。 FileUtils.listFiles