Настольное приложение Java — как получить список файлов с похожими именами файлов в определенной папке

#java #file #desktop-application

#java #файл #desktop-приложение

Вопрос:

У меня есть настольное приложение Java, в котором на промежуточном этапе генерируются некоторые файлы со следующими именами файлов

 file-01-1.xml
file-01-2.xml
file-01-3.xml

and so on.
  

Количество файлов с такими именами является переменным, я хочу определить общее количество файлов с указанным выше типом имени, чтобы затем я мог выполнить дальнейшую обработку этих файлов. (Эти файлы генерируются командой DOS, которая не указывает количество файлов, сгенерированных на выходе / количество сгенерированных файлов зависит от входного файла, отсюда и эта проблема).

Ответ №1:

Вы можете реализовать чистое Java-решение, используя File.list() , File.listFiles() комбинируя их с FileFilter . Оба метода возвращают массивы, поэтому вы можете получить длину массива, чтобы получить количество файлов.

Этот метод может быть неэффективным, если количество файлов очень велико (например, тысячи). В этом случае я бы посоветовал вам реализовать решение для конкретной платформы, выполнив внешнюю команду like sh ls file* | wc -l .

Ответ №2:

Вы можете использовать пользовательский FilenameFilter при перечислении файла в выходной папке. Смотрите: http://download.oracle.com/javase/6/docs/api/java/io/File.html#list(java.io.FilenameFilter)

Ответ №3:

Используйте File.listFiles(FilenameFilter) или аналогичные методы.