このエントリーをはてなブックマークに追加


ファイルかディレクトリかを確認する

Javaでファイルかディレクトリなのかを確認するサンプルソースおよび実行例を以下に記します。

Fileクラスを使用する

Fileクラスにはファイルの状態を調べる(取得する)便利なメソッドがたくさんあります。
以下のリンクがFileクラスのドキュメントになります。

今回使用するメソッドは以下の3つです。

  1. boolean exists()
    ファイルまたはディレクトリが存在するかを確認することができます。
  2. boolean isDirectory()
    ディレクトリの場合、trueを返却します。
  3. boolean isFile()
    ファイルの場合、trueを返却します。

ファイルからディレクトリをチェックするサンプルソース

以下に、本プログラムの引数に渡された文字列のファイルまたはディレクトリが存在するかを確認し、
ファイルかディレクトリかをチェックし、結果を表示するサンプルソースになります。
引数を指定しなかった場合は、使い方(Usage)が表示されます。

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();
    }
}

実行結果

上記のサンプルソースをコンパイルし実行します。

  1. コンパイルします。
    $ javac ChkFileOrDir.java
  2. チェック用のファイルとディレクトリを作成します。
    $ 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
  3. 実行します。
    $ java ChkFileOrDir folder
    folder is directory.
     
    $ java ChkFileOrDir text.txt
    text.txt is file.
     
    $ java ChkFileOrDir sakura
    sakura: file or direcotry is not found.
     
    $ java ChkFileOrDir
    Usage: java ChkFileOrDir <path/to>
     
    実行結果の通り、ディレクトリとファイルを判別しています。

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


添付ファイル: fileChkFileOrDir.java 19件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-07-13 (木) 14:32:32 (520d)