Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/34: Рейтинг темы: голосов - 34, средняя оценка - 4.50
Эксперт 1С
 Аватар для OverDozero
1198 / 333 / 132
Регистрация: 07.04.2011
Сообщений: 1,766

Рекурсивный поиск файла с определенным расширением

30.10.2016, 14:54. Показов 7317. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток.Рекурсивно перебираю все каталоги и выбираю файлы.Нужны файлы с определенным расширением,например .txt.Проблема в том,что могут быть и другие файлы.Как выполнить рекурсивный обход директории по всем каталогам и найти эти файлы?Куда нужно передать фильтр?
Если сделать так:
Java
1
File[] list = dir.listFiles(new MyExtFilter(".txt"));
то не проходит рекурсивный поиск по вложенным директориям,и находятся только файлы в выбранной директории.
Код поиска:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public class FindFiles {
 
public ArrayList <String> listAll(String path,ArrayList<String> res) throws IOException{
        File dir = new File(path);
        File[] list = dir.listFiles();
        
        for (File f : list) {
                    
            if (f.isFile()) {
                            
                res.add(f.getCanonicalPath());
            } else {
                listAll(f.getCanonicalPath(),res);
            }
        }
                return res;
    }
 
 static class MyExtFilter implements FilenameFilter {
      private String ext;
 
      public MyExtFilter(String ext) {
         this.ext = ext;
      }
 
      public boolean accept(File dir, String name) {
         return name.endsWith(ext);
      }
   }
    
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.10.2016, 14:54
Ответы с готовыми решениями:

Рекурсивный поиск файлов с расширением .txt в директории
Добрый день. Необходимо написать программу для обхода директории, осуществляющую вывод всех файлов в директории с расширением .txt,...

Поиск текста во всех файлов с определенным расширением
Доброе время суток господа, мне нужно реализовать поиск текста во всех текстовых документах на компьютере, но как бы я не пытался это...

Поиск и запись в массив файлов с определенным расширением
Есть исходники Java проекта, нужно отыскать все файлы .java и записать пути к ним в массив, для дальнейшей обработки... Весь день думал,...

4
 Аватар для ninjacut
155 / 154 / 53
Регистрация: 30.04.2016
Сообщений: 321
30.10.2016, 15:33
OverDozero, Прервать выполнение метода
Проблема в куске else, ты не используешь результат рекурсивного вызова метода.
0
Эксперт 1С
 Аватар для OverDozero
1198 / 333 / 132
Регистрация: 07.04.2011
Сообщений: 1,766
30.10.2016, 15:58  [ТС]
ninjacut,
Цитата Сообщение от ninjacut Посмотреть сообщение
Проблема в куске else, ты не используешь результат рекурсивного вызова метода
Не совсем понял данное сообщение.Можно уточнить?Может быть много вложенных каталогов,и в каждом может быть нужный мне файл.Если я прерву выполнение - дальше не пройдет поиск.
0
 Аватар для ninjacut
155 / 154 / 53
Регистрация: 30.04.2016
Сообщений: 321
30.10.2016, 16:09
OverDozero, Я невнимательно код прочитал. Так а в чем проблема проверять в
Java
1
if (f.isFile()) {
еще и getName() на то что кончается на необходимое расширение или еще лучше, конечный результат уже после этого фильтровать.
1
Эксперт 1С
 Аватар для OverDozero
1198 / 333 / 132
Регистрация: 07.04.2011
Сообщений: 1,766
30.10.2016, 16:23  [ТС]
Java
1
2
3
4
5
6
7
8
String fileName;
boolean extFile;
 if (f.isFile()) {
                 fileName =  f.getName();
                 extFile = fileName.endsWith("txt");
                 if(extFile){
                    resFind.add(f.getCanonicalPath());
                 }
Вот так сделал.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.10.2016, 16:23
Помогаю со студенческими работами здесь

Поиск заданной строки в файлах с определённым расширением
echo off setlocal :START SET /P str= Введите символьную строку: SET /P disk= Введите дисковый том: if /i &quot;%disk%&quot; ==...

Открытие файла с определенным расширением
Добрый день! Имеется код, в текстовое поле отображается файл, как указать, что если в текстовом поле отображен файл с расширением...

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

Проверка наличия файла с определённым расширением
Добрый вечер! Есть некая папка с большим количеством вложенных папок и файлов разных расширений. Подскажите, как можно быстро найти...

Выделение файлов с определенным расширением файла
Работаю в эмуляторе линукс. Может кто знает как подсветить файлы с определенным расширением, например файлы .java. Т.е. сейчас выглядит...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru