#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
実行結果の通り、ディレクトリとファイルを判別しています。

以上、ファイルかディレクトリかを確認するサンプルソースでした。

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS