FileのlistFilesメソッドを使って、指定したディレクトリのファイル一覧を表示するサンプルソースです。
本プログラムにディレクトリを引数として渡すと、ファイル一覧が表示されます。
引数を指定しない場合は、Usageが表示されます。
また、ファイルを指定した場合は、ディレクトリを指定する旨のメッセージが表示されます。
import java.io.File;
class FileList {
private static void usage() {
System.err.println("Usage: java FileList <path>");
System.exit(1);
}
public static void main(String[] args) {
if (args.length != 1) {
usage();
}
File f = new File(args[0]);
if (!f.exists()) { // false
System.out.println(args[0] + " directory is not found.");
System.exit(2);
} else {
if (f.isFile()) {
System.out.println(args[0] + " is file, Please set the directory.");
System.exit(3);
} else if(!f.isDirectory()) {
System.out.println(args[0] + " is unknown, Please set the directory.");
System.exit(4);
}
File[] filelist = f.listFiles();
String NL = System.getProperty("line.separator");
if (filelist != null) {
for (File item : filelist) {
String name = item.getName();
String type = item.isFile() ? "FILE" : (item.isDirectory() ? "DIRECTORY" : "UNKNOWN");
System.out.printf("|%30s| %10s|" + NL, name, type);
}
} else {
System.out.println("file or directory nothing!");
}
}
}
}
サンプルソースをコンパイルして実行してみます。
$ javac FileList.java
$ java FileList Usage: java FileList <path>
sakura@pc ~ $ mkdir work sakura@pc ~ $ cd work/ sakura@pc ~/work $ touch a b c d e f sakura@pc ~/work $ mkdir d1 d2 d3 d4 sakura@2sakura03 ~/work $ ls -l 合計 0 -rw-r--r-- 1 sakura sakura Users 0 7月 14 13:35 a -rw-r--r-- 1 sakura sakura Users 0 7月 14 13:35 b -rw-r--r-- 1 sakura sakura Users 0 7月 14 13:35 c -rw-r--r-- 1 sakura sakura Users 0 7月 14 13:35 d drwxr-xr-x+ 1 sakura sakura Users 0 7月 14 13:35 d1 drwxr-xr-x+ 1 sakura sakura Users 0 7月 14 13:35 d2 drwxr-xr-x+ 1 sakura sakura Users 0 7月 14 13:35 d3 drwxr-xr-x+ 1 sakura sakura Users 0 7月 14 13:35 d4 -rw-r--r-- 1 sakura sakura Users 0 7月 14 13:35 e -rw-r--r-- 1 sakura sakura Users 0 7月 14 13:35 f sakura@2sakura03 ~/work $ cd .. sakura@pc ~ $
sakura@pc ~ $ java FileList work/a work/a is file, Please set the directory.
sakura@pc ~ $ java FileList ./work/ | a| FILE| | b| FILE| | c| FILE| | d| FILE| | d1| DIRECTORY| | d2| DIRECTORY| | d3| DIRECTORY| | d4| DIRECTORY| | e| FILE| | f| FILE|
以上、FileのlistFilesメソッドを使ってファイル一覧を表示するサンプルソースでした。