Удалить файлы с той же строкой префикса, используя Java - PullRequest
30 голосов
/ 30 августа 2011

У меня в каталоге около 500 текстовых файлов с одинаковым префиксом в имени файла скажем dailyReport_.

Последняя часть файла - это дата файла.(Например, dailyReport_08262011.txt, dailyReport_08232011.txt)

Я хочу удалить эти файлы с помощью процедуры Java (я мог бы пойти для сценария оболочки и добавить его в crontab, но приложение предназначено дляиспользуется неспециалистами).

Я могу удалить один файл, используя что-то вроде этого

        try{
          File f=new File("dailyReport_08232011.txt");
          f.delete();
        }
        catch(Exception e){ 
                System.out.println(e);
        }

, но могу ли я удалить файлы с определенным префиксом (например: dailyReport08 для 8-го месяца) Я мог бы легко сделать это в сценарии оболочки, используя rm -rf dailyReport08*.txt.

Но File f=new File("dailyReport_08*.txt"); не работает в Java (как и ожидалось).

Теперь в Java есть все, что возможно1020 * без выполнения цикла для поиска в каталоге файлов?

Можно ли добиться этого с помощью специальных символов, подобных *, используемых в сценарии оболочки?

Ответы [ 11 ]

0 голосов
/ 30 августа 2011

Взгляните на Apache FileUtils , который предлагает множество удобных манипуляций с файлами.

...