#author("2017-07-14T15:07:35+09:00","","")
#navi(../)
* ファイルの削除 [#s09f096d]
Javaによるファイルおよびディレクトリを削除するサンプルソースおよび実行結果を以下に記します。
#contents
#htmlinsert(java_ads_top.html)
* 関連記事 [#fe69e821]
-[[テキストファイルの読み込みサンプル>ファイル操作/テキストファイルの読み込み]]
-[[テキストファイルの出力>ファイル操作/テキストファイルの出力]]
-[[ファイルを追記モード開き文字列を追加する>ファイル操作/ファイルを追記モード開き文字列を追加する]]
-[[CSV取込みサンプルを作ってみた>ファイル操作/CSV取込みサンプルを作ってみた]]
* ファイルの削除サンプルソース [#qf415af2]
本プログラムは削除したいファイルまたはディレクトリを引数に渡します。~
ファイルまたはディレクトリの削除が失敗した場合、失敗した旨のメッセージが表示されます。~
また、引数を渡さなかった場合はUsageが表示されます。
&ref(RemoveFile.java); LF
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);
}
}
}
* 実行結果 [#ld53bcb4]
コンパイルして実行してみます。
+ コンパイルします。
sakura@ubuntu:~$ javac RemoveFile.java
+引数なしで実行するとUsageが表示されます。
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によるファイル・ディレクトリを削除するサンプルソースでした。
#htmlinsert(java_ads_btm.html)