Javaによるファイルおよびディレクトリを削除するサンプルソースおよび実行結果を以下に記します。
本プログラムは削除したいファイルまたはディレクトリを引数に渡します。
ファイルまたはディレクトリの削除が失敗した場合、失敗した旨のメッセージが表示されます。
また、引数を渡さなかった場合はUsageが表示されます。
import java.io.File;
class RemoveFile {
private static void usage() {
System.err.println("Usage: java RemoveFile <path/to>");
System.exit(1);
}
public static void main(String[] args) {
if (args.length != 1) {
usage();
System.exit(1);
}
File f = new File(args[0]);
if (!f.exists()) { // false
System.out.println(args[0] + " is not found.");
System.exit(1);
}
System.out.print("Remove target: ");
if (f.isFile()) {
System.out.println(args[0] + " file.");
} else if(f.isDirectory()) {
System.out.println(args[0] + " directory.");
} else {
System.out.println(args[0] + " is unknown.");
System.exit(2);
}
if (!f.delete()) {
System.out.println("cannot remove: " + args[0]);
System.exit(3);
}
}
}
コンパイルして実行してみます。
sakura@ubuntu:~$ javac RemoveFile.java
sakura@ubuntu:~$ java RemoveFile Usage: java RemoveFile <path/to>
sakura@ubuntu:~$ mkdir folder sakura@ubuntu:~$ touch file sakura@ubuntu:~$ ls -ld folder/ file -rw-rw-r-- 1 sakura sakura 0 7月 14 14:59 file drwxrwxr-x 2 sakura sakura 4096 7月 14 14:58 folder/
sakura@ubuntu:~$ java RemoveFile file Remove target: file file.
sakura@ubuntu:~$ java RemoveFile folder/ Remove target: folder/ directory.
sakura@ubuntu:~$ ls -ld folder/ file ls: 'folder/' にアクセスできません: そのようなファイルやディレクトリはありません ls: 'file' にアクセスできません: そのようなファイルやディレクトリはありません
sakura@ubuntu:~$ mkdir folder sakura@ubuntu:~$ touch folder/a sakura@ubuntu:~$ ls -l folder/ 合計 0 -rw-rw-r-- 1 sakura sakura 0 7月 14 15:01 a
sakura@ubuntu:~$ java RemoveFile folder/ Remove target: folder/ directory. cannot remove: folder/
以上、Javaによるファイル・ディレクトリを削除するサンプルソースでした。