Javaでファイルかディレクトリなのかを確認するサンプルソースおよび実行例を以下に記します。
Fileクラスにはファイルの状態を調べる(取得する)便利なメソッドがたくさんあります。
以下のリンクがFileクラスのドキュメントになります。
今回使用するメソッドは以下の3つです。
以下に、本プログラムの引数に渡された文字列のファイルまたはディレクトリが存在するかを確認し、
ファイルかディレクトリかをチェックし、結果を表示するサンプルソースになります。
引数を指定しなかった場合は、使い方(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();
}
}
上記のサンプルソースをコンパイルし実行します。
$ 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.
$ 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>
以上、ファイルかディレクトリかを確認するサンプルソースでした。