ファイル一覧を標示するサンプル †
FileのlistFilesメソッドを使って、指定したディレクトリのファイル一覧を表示するサンプルソースです。
ファイル一覧を表示するサンプルソース †
本プログラムにディレクトリを引数として渡すと、ファイル一覧が表示されます。
引数を指定しない場合は、Usageが表示されます。
また、ファイルを指定した場合は、ディレクトリを指定する旨のメッセージが表示されます。
FileList.java LF
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
- 引数なしで実行した場合は、Usageが表示されます。
$ 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メソッドを使ってファイル一覧を表示するサンプルソースでした。