Monday, March 9, 2009 / Java

Java でディレクトリを確実に削除するコード

Java.io.Fileには、delete() というメソッドがあるので、それを呼び出せば、ファイルやディレクトリは削除できる。 ただし、ディレクトリの場合、その中にファイルやサブディレクトリがあると削除が失敗する。
そこで以下のように再帰的にサブディレクトリにさかのぼって、ファイルを消した上で、ディレクトリを消すという方法で、削除する。

実装はこんな感じです。

private static void delete(File f){
	if( f.exists()==false ){
		return ;
	}

	if(f.isFile()){
		f.delete();
	}
		
	if(f.isDirectory()){
		File[] files=f.listFiles();
		for(int i=0; i<files.length; i++){
			delete( files[i] );
		}
		f.delete();
	}
}

static public void main(String[] args){
	delete(new File("mydir"));
}

ちなみに groovy だったら

new File('mydir').deleteDir()

するだけです。