- 締切済み
ディレクトリ(フォルダ)の中身の一覧の取得方法
ええとJavaのクラスでディレクトリ(フォルダ)の 中身(ファイルやらディレクトリ)を取得する ような方法ってあるんでしょうか? たしかCだとfindなんたら(←かなりうろ覚え)って 関数があってディレクトリの中のファイルを 拾ってこれましたよね? (↑条件に合うファイルを拾ってくる関数だったかも) これと似たようなクラスとかJavaにはあるんでしょうか? よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- ssr-y6
- ベストアンサー率71% (5/7)
ディレクトリ内のファイルの一覧を取得するには、FileクラスのlistFilesが使えます。 ファイルやディレクトリを選別したい場合は、FileFilterクラスを引数に持つlistFilesを使い、 そのクラスのacceptメソッドでファイルを検査すれば目的のものだけを選別できます。 以下の例では、指定されたディレクトリ以下の".class"が最後に付くファイルを書き出しています。 import java.io.*; public class listfile { private static void Search(File dir) { File Dir[] = dir.listFiles(new FileFilter() { public boolean accept(File f) { String s = f.getName(); if ((s.compareTo(".") == 0) || (s.compareTo("..") == 0)) return(false); if ((s.length() > 6) && (s.indexOf(".class") == (s.length() - 6))) return(true); if (f.isDirectory()) return(true); return(false); }; }); for (int i = 0; i < Dir.length; i ++) { if (Dir[i].isDirectory()) Search(Dir[i]); else System.out.println(Dir[i].getAbsolutePath()); }; }; public static void main(String args[]) { File Root; if (args.length == 0) Root = new File(System.getProperty("user.dir")); else Root = new File(args[0]); Search(Root); }; }
- run34ricky
- ベストアンサー率64% (38/59)
winyu-noさん、こんにちは。 Cから離れて久しいのでfind関数はわからないのですが、JavaにはFileクラスがあります。これは実際のファイルまたはフォルダを表現したクラスで、ディレクトリを表現するクラスオブジェクトを生成した場合、そのディレクトリ直下のサブディレクトリ・ファイルの名称/Fileの配列を戻すlist()/listFiles()メソッドが存在します。 // あるディレクトリ直下にある // ディレクトリ・ファイルの絶対パスを出力する例 File dirFile = new File( "ディレクトリパス" ); File[] subFiles = dirFile.listFiles(); for ( int i = 0; i < subFiles.length; i++ ) { System.out.println( subFiles[ i ].getAbsolutePath() ); } もし、配下すべてのディレクトリ/ファイルを拾う必要がある場合はメソッドで得たサブディレクトリに対して再帰的に操作します。
- osamuy
- ベストアンサー率42% (1231/2878)
java.io.File.listFiles() とか。