navi(../)
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メソッドを使ってファイル一覧を表示するサンプルソースでした。