2

次のようなファイルがあります

LOG_EXPORT_TIME_STAMP_IMAGES-LOG1-T20130119_000817
LOG_EXPORT_TIME_STAMP_IMAGES-LOG1-T20130119_000818
LOG_EXPORT_TIME_STAMP_IMAGES-LOG1-T20130119_000819

場所で、で"C:\temp"始まるすべてのファイルを削除したい"LOG_EXPORT_TIME_STAMP_IMAGES".Googleをいくつか実行して、次のようなコードを取得しました

File file = new File("c:\\Temp\\LOG_EXPORT_TIME_STAMP_IMAGES-LOG1-T20130119_000817");

file.delete()

しかし、私が観察したことは、ファイルのフルネームを渡す必要があります。そのファイルの部分文字列を渡すことでそれを行うことはできますか?

4

3 に答える 3

5

まず、ディレクトリ内のファイルを一覧表示します

File[] files = directory.listFiles();

次に、アレイを繰り返し処理し、各ファイルを個別に削除します。これにより、削除するファイルをより細かく選択できるようになります。

これらの行の何か:

File directory = new File("C:\temp");
File[] files = directory.listFiles();
for (File f : files)
{
    if (f.getName().startsWith("LOG_EXPORT_TIME_STAMP_IMAGES"))
    {
      f.delete();
    }
}
于 2013-01-19T08:47:39.873 に答える
3

FilenameFilter を使用して、既知のパターンでファイル名を処理します。

あなたの場合、次のようなことを試してください:

File[] files = directory.listFiles(new FilenameFilter()
     {
         public boolean accept(File dir, String name)
         {
             if(name.startsWith(<your string here>)
             {
                 return true;
             }
             return false;
         }

     });

次に、返されたファイル配列を反復処理してそれらを削除します。

于 2013-01-19T08:55:56.487 に答える
1

完全なファイル名が必要なので、ディレクトリ内のファイルのリストを取得し、それらを繰り返し処理して、削除するファイルを決定する必要があります。

この投稿では、ファイルのリストを取得して使用する方法を示します。ディレクトリ内のディレクトリを処理します。Javaのディレクトリとサブディレクトリからすべてのファイルを一覧表示します

于 2013-01-19T08:44:52.497 に答える