Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
☆ Форумчанин(FSC)☆
 Аватар для 2ima
911 / 292 / 27
Регистрация: 28.04.2013
Сообщений: 2,466
Записей в блоге: 10

Поиск файлов по нескольким расширениям

22.12.2014, 08:41. Показов 1877. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
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
void ListFiles(AnsiString path)
{
 
  if (FindFirst(path+"*.*", !faDirectory , sr) == 0)
  {
    do
    {
      //List->Add("Путь: "+path+"  Имя: "+sr.Name+"  Размер: "+sr.Size);
 
   if(Form4->CheckBox2->Checked==true)
   {
   Form4->Memo4->Lines->Add(path+sr.Name);
   }
   //-----------------
   if(Form4->CheckBox2->Checked==false)
   {
    Form4->Memo9->Lines->Add(path+sr.Name);
 
   }
       //
 
     } while (FindNext(sr) == 0);
 
    FindClose(sr);
  }
}
Кто знает,как здесь можно реализовать поиск файлов по нескольким расширениям, а не только по одному?

Добавлено через 10 часов 54 минуты
Никто не в курсе?
1
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.12.2014, 08:41
Ответы с готовыми решениями:

Есть ли более изящный вариант поиска файлов по нескольким расширениям
private void SetCurrentDirectory(string filePath) { List<string> filesInDirectory; string...

Поиск файлов по списку имён и по заданным расширениям с выводом полных имён найденных в текстовый файл
Доброго времени суток! Стоит задача сделать батник. Для поиска файлов по списку имён (кириллица) с заданными расширениями, и выводом...

Поиск файлов по нескольким разделам
Помогите пожалуйста переделать код, чтобы поиск был по нескольким разделам с несколькими расширениями. Т.е. искало на диске A, B, C по...

2
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
22.12.2014, 10:50
Вот пример
C++
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
void __fastcall TForm1::Button1Click(TObject *Sender)
{
ListBox1->Clear();
AnsiString Path = "D:\\";//путь к папке поиска по расширению
TSearchRec sr;/// Структура заполняется информацией о найденном файле
                           // по вызову ф-ций FindFirst и FindNext
int iAttributes = faAnyFile;// константа faAnyFile означает, что функция  FindFirst будет искать любые файлы
int done;
TStringList * list = new TStringList();
list->Add("*.doc");
list->Add("*.mp3");
for (int i = 0; i < 2; i++)
{
Path = Path + list->Strings[i];
done = FindFirst( Path, iAttributes, sr );//передаём параметры в функцию и приравниваем к переменной
while(!done)// ищем пока не найдём все файлы с заданным расширением в папке
{
ListBox1->Items->Add(ChangeFileExt(sr.Name,""));//если нашли заносим название файла в ListBox и при этом обрезаем расширение файла
done = FindNext(sr);//ищем дальше
}
FindClose(sr); //закрываем поиск
Path = "D:\\";
}
delete list;
list = NULL;
}
1
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
22.12.2014, 12:10
Или вот так. Все по полочкам, все списки под рукой - делай с ними что хочешь.
C++
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
32
33
34
35
36
    typedef std::map < String, TStringDynArray > t_files_by_ext_map;
 
    TStringDynArray exts( SplitString( edit_extentions->Text, "|" ) );
    t_files_by_ext_map files_by_ext;
 
    for ( int i( 0 ), i_limit( exts.Length ); i < i_limit; ++i )
    {
        files_by_ext[ exts[ i ] ] = TDirectory::GetFiles(
            TPath::GetFullPath( edit_path->Text ),
            exts[ i ],
            TSearchOption::soTopDirectoryOnly );
    }
 
    String filename;
    TFileStream * fs;
 
    for ( t_files_by_ext_map::iterator it( files_by_ext.begin( ) ), end( files_by_ext.end( ) ); it != end; ++it )
    {
        memo_1->Lines->Add( "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" );
        memo_1->Lines->Add( it->first + " extention list:" );
 
        for ( int i( 0 ), i_limit( it->second.Length ); i < i_limit; ++i )
        {
            filename = it->second[ i ];
            fs = TFile::OpenRead( filename );
 
            memo_1->Lines->Add( "Путь: " + ExtractFilePath( filename ) );
            memo_1->Lines->Add( "Имя: " + TPath::GetFileNameWithoutExtension( filename ) );
            memo_1->Lines->Add( "Размер: " + IntToStr( fs->Size ) + " байт; "
                + IntToStr( Ceil( fs->Size / 1024. ) ) + " килобайт; "
                + FloatToStrF( fs->Size / 1024. / 1024., ffFixed, 15, 1 ) + " магабайт." );
            memo_1->Lines->Add( "" );
 
            delete fs;
        }
    }
Миниатюры
Поиск файлов по нескольким расширениям  
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.12.2014, 12:10
Помогаю со студенческими работами здесь

Поиск файлов по нескольким маскам
помогите реализовать поиск файлов сразу по нескольким маскам, используя этот код: procedure FindFiles(StartFolder, Mask: string;...

Поиск файлов по нескольким шаблонам
как искать одновремено несколько форматов файлов к примеру *.jpg *.bmp *.png string list = null; string...

Копирование файлов по списку в текстовом файле в папки с именами, соответствующими расширениям этих файлов
Добрый день, уважаемые форумчане. Прошу помощи с написанием bat-файла. Значит задача такая. Есть у нас помойка с множеством файлов и...

Распределение файлов по папкам, соответствующим расширениям файлов
Здравствуйте. Есть папка Downloads и в ней множество файлов с разным расширением (mp3, jpeg, rar и т.д.). Хотелось бы чтобы bat-файл...

Одновременный поиск файлов по нескольким заданным путям
dir/a-d/b/s D:\Test\*.txt Данная команда найдет все файлы .txt по заданному пути. Подскажите как включить в поиск несколько путей. ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru