Home About
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()

するだけです。

Liked some of this entry? Buy me a coffee, please.