- PR -

java.io.File.delete() で中身があるDirectory削除

1
投稿者投稿内容
ogeretyou
会議室デビュー日: 2004/06/14
投稿数: 18
投稿日時: 2005-07-06 23:15
java.io.File について、
File.delete() でdirectoryの削除をしたいのですが、

指定directory以下にファイルが存在する場合、directory削除できません。
指定directory以下に不定個のファイル(または更にdirectory階層)がある場合、
一度にdirectory毎削除することは不可能でしょうか?

基本的なことで申し訳有りませんが、何か良い方法(おさだまりの方法等)がありましたら
アドバイスお願いします。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2005-07-06 23:41
フォルダを消す場合、子が存在したら削除はできません。
っていうか、Javadocにそう書いてありますが。

1・フォルダにフォルダがあれば、そのフォルダを取得...1へ
2・そのフォルダに存在するファイルを全て消す
3・そのフォルダを消す
4・1へ

ってな感じで再帰処理を書く必要があります。

ちなみに、Jakarta ProjectsのCommons IOに上記の実装があったと思います。
ogeretyou
会議室デビュー日: 2004/06/14
投稿数: 18
投稿日時: 2005-07-07 00:48
かつのりさん

レスどうもありがとうございます!
問題は解決しました。

Javaの標準API(java.io.File)では、教えて頂いた再帰処理で実装する、
ということがわかりました。

今回は教えて頂いた、jakarta commons IO の
FileUtils.forceDelete()

で上記対応しました。

forceDelete() も内部では再帰処理をしているようなので、
自分でも実装してみたいと思います。
1

スキルアップ/キャリアアップ(JOB@IT)