Javaでフォルダ削除ができない?ファイルを一括削除するには再帰 (recursive)を使う

プログラミング
スポンサーリンク

Javaで特定のフォルダ以下を一括で削除するメソッドは無いらしい。

というのが出来ないってことです。

スポンサーリンク

Javaの再帰 (recursive) を使ってフォルダを削除

Fileクラスのdeleteメソッドは、1つのファイルしか削除できません。

空フォルダの削除は可能ですが、複数階層のディレクトリとなると少し工夫が必要です。

プログラム的に解決するには、再帰 (recursive call) を使うことです。

再帰とは、ある関数の中で自分自身を呼び出すことを言います。

https://urashita.com/archives/1291

 

 

Javaで再帰 (recursive) を使ってフォルダを削除するサンプルは以下をご覧ください。

https://stackoverflow.com/questions/779519/delete-directories-recursively-in-java

https://www.sejuku.net/blog/20626

http://hensa40.cutegirl.jp/archives/750

 

再帰のプログラムでは、無限ループにならないように、元の関数にもどる条件が必要になります。

指定したディレクトリの配下にファイルがある場合は、listFilesメソッドで取得したリスト分ループし、ファイルの場合は再帰的に自身を呼び出してファイルを削除しています。

Apache commons ioのFileUtilsでフォルダを削除

もう少し簡単な方法として、Apache commons ioのFileUtilsを使う方法があります。

 

Apache's commons-io

FileUtils

 

 

コメント