Fileクラス
再帰的にファイルを削除する
サンプル
中身が入っているディレクトリを削除します。
再帰的にファイルを削除するサンプル
空でないディレクトリを削除できないのはやっぱり不便なので、
再帰的に中のファイルやディレクトリを削除するサンプルを紹介しますね。
指定したディレクトリも削除対象です。
削除できないファイル、又はディレクトリがあった場合、その場で処理を終了します。
くれぐれも自己責任でおねがいしますね。
ほーら、やっぱりやりやがったわよこの女は!
なにが 「怖い事言わないで。」 だか。
静乃だって指定したディレクトリ以下を
一撃で削除させてるじゃないのよ!!
//Sample14_03.java
import java.io.File;
class Sample14_03{
public static void main(String[] args){
String strDir = "parent"; //削除対象
boolean success = false;
File dir = new File(strDir);
if(dir.exists()){
success = deleteAll(dir);
}
if(success){
System.out.println("削除しました。");
}else{
System.out.println("削除に失敗しました。");
}
}
private static boolean deleteAll(File dir){
if(dir.isDirectory()){
File[] files = dir.listFiles();
if(files!=null){
for(File file : files){
boolean success = deleteAll(file);
if(!success){
return false;
}
}
}
return dir.delete(); //中身を消したあとにディレクトリを削除
}else{
return dir.delete(); //ファイルを削除
}
}
}
コマンドライン
>cd ws
ws>javac -encoding UTF-8 Sample14_03.java
ws>java Sample14_03
削除しました。
ws>
重要
削除したファイルは、ゴミ箱には入りません。
[ctrl] + Z も効きません。
サンプルプログラムの実行は慎重に行ってください。
これはほんとにヤバイっス。
動作の実験をするときには
ファイルのバックアップするっスよ!
載せるか省くか悩んだんだよ? 一応。
でもレベルアップには時に
リスクも必要じゃないかと思うわけさ。
法に触れるような使い方は
しないでね。
いたずらじゃあ済まないわよ。
お疲れ様でした。