#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) или аналогичные методы.