MY-NOTEBOOK

Monday, March 9, 2009

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

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

code

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

static private 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();
	}
}

ちなみに groovy なら簡単にできます

new File('mdir').deleteDir()

それだけでOK! groovy おすすめです。

© 2006-2012 Tomoaki Oshima