
仕事で必要にせまられてしまい、プログラムを
書いているのですが、わからない部分があるため教えてください。
ディレクトリ内のファイルをすべて削除したいと思っています。
ファイル1つだけを削除はできましたが、ファイル全てを一度に削除する方法はありますか。
<略>
FILE file = new File("C:\\test","test.txt");
file.delete();
......
ファイル名にワイルドカードを指定したのですが削除はできませんでした。こういったやり方は可能ですか。また他のやり方があれば教えてください。
C言語だとシステムコマンドを直接使用できる指定可能なやり方があったと思うのですが、JAVA内でもプログラム内でDOSコマンドを実行させるようなやり方がないでしょうか。
No.3ベストアンサー
- 回答日時:
ワイルドカードのようなOS依存の機能はJavaにはないんじゃないでしょうか?(たぶん)
ワイルドカードも結局は、それを解釈する処理がリストを取ってやっているのでしょうけれど。
DOSのコマンドを実行させるなら、java.lang.Runtimeのexecメソッドが使えると思います。
--------
Runtime rt = Rutime.getRuntime();
int result = rt.exec("hoge.exe").exitValue();
if(result == 0) {
System.out.println("OK");
}
else {
System.out.println("ERROR");
}
No.4
- 回答日時:
「回答ありがとうございます。
再帰的に削除ですか・・・」既に回答されておられる方のどの方法でも、ご質問者の希望である「ディレクトリ内のファイルをすべて削除したい」は
実現可能だと思うのですが、どこに満足されていないのでしょうか?
あるディレクトリ配下のファイル、ディレクトリツリー毎 ごっそり削除したいのでしょうか?
それでしたら、No.2さんが書かれています FileUtilsクラスのcleanDirectory(File directory) や、
同クラスの別のメソッド deleteDirectory(File directory) が使えると思います。一回コールするだけで、
ごそっと削除してくれます。
また、No.3さんの方法でも可能です。"hoge.exe"の代わりに "rmdir /s /q ドライブ名:ディレクトリ名" を
指定すればいいです。
No.1さんの方法はご自分で再帰的なロジックを作る必要はあります。
単純に、配下にディレクトリツリーを持たない、あるディレクトリ内のファイルを全て削除するだけなら、No.1さんの方法の
簡略版である下記の方法で可能です。
//あるディレクトリ配下のファイル全削除
File[] objFiles = (new File("ディレクトリ名")).listFiles();
if ( objFiles != null ) {
for(int i=0; i< objFiles.length; i++ ) {
objFiles[i].delete();
}
}
それとも、ワイルドカードを使用した削除を行いたいのでしょうか?
すいません、ご質問者のやりたい事がいまいち、見えないもので、質問に対して質問で答えてしまいました。
この回答への補足
皆様ありがとうございました、お礼が遅くなりました。削除したいフォルダが複数あることと、削除したいファイル名が特定できないためワイルドカードを使用して削除したいと考えたのですが1つずつしか削除できないのであれば大変だなあと考えていたのですが提案していただいた方法でOKでした。
補足日時:2005/05/11 00:48No.2
- 回答日時:
Apache-commonsプロジェクトで公開されている
commons-ioライブラリにある
FileUtilsクラスのcleanDirectory()メソッドを使うと、
ディレクトリの中身を丸ごと一括削除してくれます。
この内部でも結局ループを使って一つずつ削除しているので、ワイルドカードなどで一括削除するような機能は無いのだと思います。
参考URL:http://jakarta.apache.org/commons/io/apidocs/org …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Subversionのリポジトリの削除
-
FTPコマンドでディレクトリごと...
-
CFileDialogの最初のディレクト...
-
IIS+PHP スクリプトから仮想デ...
-
FTPでのファイルとディレクトリ...
-
Subversionで、ファイルをリネ...
-
環境の設定について・・・
-
makefile でファイルをコピーす...
-
VB2008でFTPでのディ...
-
Permission denied in
-
fopenでファイルが開かない場合...
-
JAVA内で複数のファイルを削除...
-
DLL のロードの順序
-
LoadLibraryの戻り値(HMODULE)...
-
コマンドプロンプトを指定のデ...
-
visualstudioでc#のdllができない
-
glob関数で日本語文字が取得で...
-
VB.NET 最下位のディレクトリ名...
-
PHPのif文でその処理を途中で抜...
-
ボタンのクリック数を合計保存...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
FTPコマンドでディレクトリごと...
-
Subversionのリポジトリの削除
-
CFileDialogの最初のディレクト...
-
makefile でファイルをコピーす...
-
現在位置より2つ上のディレク...
-
visualstudioでc#のdllができない
-
JAVA内で複数のファイルを削除...
-
rmdirでフォルダが消せません
-
バッチを用いたフォルダの自動移動
-
glob関数で日本語文字が取得で...
-
Subversionで、ファイルをリネ...
-
Makefile.inとMakefile.am
-
O/Rマッパーの選定
-
WSHやVBSについて
-
DLL のロードの順序
-
絶対パス?絶対アドレス?意味...
-
LoadLibraryの戻り値(HMODULE)...
-
ツリーメニューを縮小させたい
-
wordpressの記事をカスタマイズ...
-
アプリケーション・ディレクト...
おすすめ情報