#author("2017-07-13T14:32:16+09:00","","") #navi(../) *ファイルかディレクトリかを確認する [#i98a8e8c] Javaでファイルかディレクトリなのかを確認するサンプルソースおよび実行例を以下に記します。 #contents * Fileクラスを使用する [#c3796756] Fileクラスにはファイルの状態を調べる(取得する)便利なメソッドがたくさんあります。~ 以下のリンクがFileクラスのドキュメントになります。~ -[[Fileクラス>http://docs.oracle.com/javase/jp/7/api/java/io/File.html]] 今回使用するメソッドは以下の3つです。 + boolean exists()~ ファイルまたはディレクトリが存在するかを確認することができます。 + boolean isDirectory()~ ディレクトリの場合、trueを返却します。 + boolean isFile()~ ファイルの場合、trueを返却します。 * ファイルからディレクトリをチェックするサンプルソース [#ba558685] 以下に、本プログラムの引数に渡された文字列のファイルまたはディレクトリが存在するかを確認し、~ ファイルかディレクトリかをチェックし、結果を表示するサンプルソースになります。~ 引数を指定しなかった場合は、使い方(Usage)が表示されます。 #ref(ChkFileOrDir.java); LF import java.io.File; class ChkFileOrDir { String filename; private void setFilename(String s) { this.filename = s; } private String getFilename() { return this.filename; } private void usage() { System.err.println("Usage: java ChkFileOrDir <path/to>"); System.exit(1); } private void run() { File f = new File(this.getFilename()); if (!f.exists()) { System.err.println(this.getFilename() + ": file or direcotry is not found."); System.exit(2); } if (f.isFile()) { System.err.println(this.getFilename() + " is file."); } else if (f.isDirectory()) { System.err.println(this.getFilename() + " is directory."); } else { System.err.println(this.getFilename() + " is unknown."); } } ChkFileOrDir(String[] args) { if (args.length != 1) { usage(); } this.setFilename(args[0]); } public static void main(String[] args) { ChkFileOrDir me = new ChkFileOrDir(args); me.run(); } } * 実行結果 [#z8cf7376] 上記のサンプルソースをコンパイルし実行します。 + コンパイルします。 $ javac ChkFileOrDir.java + チェック用のファイルとディレクトリを作成します。 $ touch text.txt $ mkdir folder $ ls -ld text.txt folder/ drwxrwxr-x 2 sakura sakura 0 7月 13 12:54 folder/ -rw-r--r-- 1 sakura sakura 0 7月 13 12:54 text.txt + 実行します。 $ java ChkFileOrDir folder folder is directory. #br $ java ChkFileOrDir text.txt text.txt is file. #br $ java ChkFileOrDir sakura sakura: file or direcotry is not found. #br $ java ChkFileOrDir Usage: java ChkFileOrDir <path/to> #br 実行結果の通り、ディレクトリとファイルを判別しています。 以上、ファイルかディレクトリかを確認するサンプルソースでした。