javaを使用してディレクトリからファイルのリストを取得する方法

ディレクトリのlistFilesメソッドは、そのディレクトリの内容を返します。 このメソッドは、返すファイルまたはディレクトリを選択するパラメータでフィルタを受け取ります。 ファイルのみを返すフィルタが実装されています。

次のメソッドを呼び出します。

FileFilter fileFilter = new FileFilter() {
    public boolean accept(File file) {
	return file.isFile();
    }
};
	
File[] tab = file.listFiles( fileFilter );

この例のコードは、ディレクトリv:/ tmpにディレクトリをリストします。 まず、コードがfile.isDirectory()を呼び出して、テスト対象のフォルダがディレクトリであることを検証します。 ObjectがFileの場合にのみtrueを返すFileFilterを作成します。 フィルタを使用してlistFilesメソッドが呼び出されます。 出力に返されたファイルはSystem.outに書き込まれ、フィルタリングが確認されます。

次のJavaファイルを作成します。

import java.io.File;
import java.io.FileFilter;


public class FolderListFiles {

    public static void main(String[] argv) {

	File file = new File("V:/tmp/");

	if( file.isDirectory() ){
	    System.out.println( file.getName() + " はディレクトリです " );
	}
	
	FileFilter fileFilter = new FileFilter() {
	    public boolean accept(File file) {
		return file.isFile();
	    }
	};
	
	// フィルタを使用してすべてのファイルを一覧表示する
	File[] tab = file.listFiles( fileFilter );
	
	System.out.println( "ディレクトリ内のファイルは次のとおりです。" );
	for( File current : tab ){
	    System.out.println( current.getAbsolutePath() );
	}
	
    }

}

出力は次のようになります。

tmp はディレクトリです
ディレクトリ内のファイルは次のとおりです。
V:\tmp\00012-capture.jpg
V:\tmp\01805-capture.jpg
V:\tmp\01807-capture.jpg

参考文献:

java 7 File

最近のコメント