Найти все файлы с расширением java

Обновлено: 07.07.2024

Итак, если файл начинается с temp и имеет расширение .txt, я хотел бы затем поместить это имя файла в File file = new File("C:/example/temp***.txt); , чтобы затем прочитать его в файле, тогда цикл должен перейти к следующему файлу проверьте, соответствует ли он, как указано выше.

ОТВЕТЫ

Ответ 1

Это даст вам список файлов в каталоге, который вы хотите, чтобы соответствовать определенному фильтру.

Код будет выглядеть так:

Ответ 2

Вы можете использовать FilenameFilter, например:

Ответ 3

Я знаю, это старый вопрос. Но только ради полноты, лямбда-версия.

Ответ 4

Посмотрите java.io.File.list() и FilenameFilter .

Ответ 5

Рассмотрим Apache Commons IO, у него есть класс FileUtils, у которого есть метод listFiles который может быть очень полезен в вашем случае.

Ответ 6

Appaste commons IO различные

Смотрите Apache javadoc здесь. Он соответствует шаблону с именем файла. Таким образом, вы можете использовать этот метод для своих сравнений.

Ответ 7

Список файлов Json из вашего каталога.

Ответ 8

Как сказал @Clarke, вы можете использовать java.io.FilenameFilter для фильтрации файла по конкретному условию.

В качестве дополнения я хотел бы показать, как использовать java.io.FilenameFilter для поиска файла в текущем каталоге и его подкаталоге.

Общие методы getTargetFiles и printFiles используются для поиска файлов и их печати. ​​

Я продемонстрирую, как использовать рекурсивный, bfs и dfs, чтобы выполнить задание.

Рекурсивный

Первый поиск по ширине:

Глубина первого поиска:

/** * Искать как можно дальше вдоль каждой ветки перед возвратом */ private void dfs()

Ответ 9

Начиная с Java 1.8, вы можете использовать Files.list для получения потока:

Ответ 10

Чтобы уточнить этот ответ, Apache IO Utils может сэкономить вам время. Рассмотрим следующий пример, который будет рекурсивно искать файл с заданным именем:

Ответ 11

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

Это должно быть просто, но я не могу его получить - "напишите программу, которая ищет конкретное имя файла в данном каталоге."Я нашел несколько примеров жестко закодированного имени файла и каталога, но мне нужно, чтобы и dir, и имя файла были введены пользователем.

вы можете попробовать что-то вроде этого:

Это похоже на вопрос домашней работы, поэтому я просто дам вам несколько советов:

попробуйте дать хорошие отличительные имена переменных. Здесь вы использовали "fileName" сначала для каталога, а затем для файла. Это сбивает с толку и не поможет вам решить проблему. Используйте разные названия для разных вещей.

вы не используете сканер ни для чего, и это не нужно здесь, избавиться от него.

кроме того, метод accept должен возвращать логическое значение. Прямо сейчас вы пытаетесь вернуть строку. Boolean означает, что он должен возвращать true или false. Например return a > 0; может возвращать true или false, в зависимости от значения a. Но!--1--> просто вернет значение fileName, которое является строкой.

Если вы хотите использовать динамический фильтр имени файла, вы можете реализовать FilenameFilter и передать в конструкторе динамическое имя.

конечно, это означает, что вы должны создавать экземпляр каждый раз, когда класс (накладные расходы), но он работает

затем вы используете, где вам нужно:

С * * Java 8 * есть альтернатива, которая использует потоки и лямбды:

Так это будет печатать все файлы рекурсивно:

и это будет искать файл:

я использовал другой подход для поиска файла с помощью стека.. имея в виду, что внутри папки могут быть папки. Хотя это не быстрее, чем поиск windows (и я не ожидал этого, хотя), но это определенно дает правильный результат. Пожалуйста, измените код, как вы хотите. Этот код был первоначально сделан для извлечения пути к файлу определенного расширения файла:). Не стесняйтесь оптимизировать.

следующий код помогает найти файл в каталоге и открыть его местоположение

Читайте также: