ファイル名に同じ接頭辞を持つディレクトリ内に約500のテキストファイルがあります。dailyReport_
です。Javaを使用して同じプレフィックス文字列を含むファイルを削除する
ファイルの後半はファイルの日付です。 (たとえば、dailyReport_08262011.txt
,dailyReport_08232011.txt
)
Javaプロシージャを使用してこれらのファイルを削除したいとします(シェルスクリプトを使用してcrontabにジョブを追加することもできますが、アプリケーションはlaymenによって使用されます)。
私はこの
try{
File f=new File("dailyReport_08232011.txt");
f.delete();
}
catch(Exception e){
System.out.println(e);
}
のようなものを使用して1つのファイルを削除することができますが、私は特定の接頭辞持つファイルを削除することができます。私は簡単に使用してシェルスクリプトでそれを行うことができます(たとえば、8月のdailyReport08
を) rm -rf dailyReport08*.txt
。
しかし、File f=new File("dailyReport_08*.txt");
は期待通りにJavaで動作しません。
Java では、ディレクトリを検索するループを実行することなく、このようなことが可能です。
シェルスクリプトで使用されている*
に似た特殊文字を使用してこれを達成できますか?
ループの何が問題? – user802421
私も同じ感じです...なぜループしないのですか? – amod
私は可能なループを知っています...しかし、私が言ったように、ファイル数が多すぎるかもしれません(500は単なる数字です)...そうではなくループを使用する代わりに、シェルスクリプトのように私はそれがより良いと感じています... –