Javaでフォルダ内のファイルごとフォルダ削除したい場合はdeleteDirectoryが便利
File.deleteは中身があるとFalseが返ってきてしれっと終わるから…
なのですが、org.apache.commonsにいると思ったらいなかった。
Tomcat7ではdeleteDirectoryはutil.http.fileuploadにいた。。。
ので、こいつをimportしておく↓
org.apache.tomcat.util.http.fileupload.FileUtils
ディレクトリ削除系のメソッドはこんな感じに
// 例えばこんなフォルダがあるとして
String path = System.getProperty("user.dir") + File.separator + "tmp";
File dir = new File(path);
dir.mkdir;// こんなファイルを作るとして
File newfile = new File(path + "¥¥newfile.txt");
newfile.createNewFile();// FileUtilsならファイルごとフォルダ削除可能
FileUtils.deleteDirectory(dir);// フォルダ内のファイルを全部削除(フォルダは残す)のも一発
// deleteDirectoryは↓をしてからFileクラスのdeleteをしている
FileUtils.cleanDirectory(dir);// 指定されたパスのものを削除する。パスがフォルダだったら中身ごと(サブディレクトリも)削除する。
// Boolean型で成否を返すFile.delete()と違い、削除できなかった場合は例外が発生する
FileUtils.forceDelete(dir);
一定期間でフォルダごと消す系の処理(なんかのログフォルダとか、前回実行時のバックアップ消すみたいなの)に便利!