
仕事で必要にせまられてしまい、プログラムを
書いているのですが、わからない部分があるため教えてください。
ディレクトリ内のファイルをすべて削除したいと思っています。
ファイル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で質問しましょう!
似たような質問が見つかりました
- Windows 10 renameコマンドでファイル名からアンダースコアを消す方法 5 2023/04/24 13:33
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- ノートパソコン ソフトアンインストール残存ファイル 3 2022/09/13 18:15
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/10/03 09:55
- Windows Vista・XP windows10 フォルダを上書きするときに、元のフォルダを全て削除してコピーする方法 3 2022/05/22 00:53
- Windows 10 win10 立ち上げ時のエラー 1 2023/04/17 11:55
- Visual Basic(VBA) エクセルのマクロについて教えてください マクロを実行すると メッセージボックスが表示されて okをク 4 2023/07/05 19:32
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- その他(開発・運用・管理) バッチファイルで特定のファイル・ディレクトリ以外を削除する方法について 4 2022/05/31 14:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Makefile.inとMakefile.am
-
FTPコマンドでディレクトリごと...
-
CFileDialogの最初のディレクト...
-
wordpressの記事をカスタマイズ...
-
現在位置より2つ上のディレク...
-
アプリケーション・ディレクト...
-
glob関数で日本語文字が取得で...
-
拡張子を隠すのは良い事なので...
-
visualstudioでc#のdllができない
-
PHP+PostgreSQLで画像処理につ...
-
ファイルアップローダ+複数の...
-
このアクセス解析の設置ができ...
-
Subversionのリポジトリの削除
-
システムディレクトリ以外の場...
-
Subversionで、ファイルをリネ...
-
Permission denied in
-
fopenでファイルが開かない場合...
-
バッチを用いたフォルダの自動移動
-
サブディレクトリ内の参照
-
PHPでfatal errorが出ても無視...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
FTPコマンドでディレクトリごと...
-
Subversionのリポジトリの削除
-
バッチを用いたフォルダの自動移動
-
makefile でファイルをコピーす...
-
CFileDialogの最初のディレクト...
-
FTPでのファイルとディレクトリ...
-
visualstudioでc#のdllができない
-
VB.NET 最下位のディレクトリ名...
-
MkDir関数
-
現在位置より2つ上のディレク...
-
DLL のロードの順序
-
rmdirでフォルダが消せません
-
Subversionで、ファイルをリネ...
-
絶対パス?絶対アドレス?意味...
-
define でのルートディレクト...
-
Visual C++ 2005 Express Editi...
-
ツリーメニューを縮小させたい
-
JAVA内で複数のファイルを削除...
-
fopenでファイルが開かない場合...
-
Smarty includeでテンプレート...
おすすめ情報