Форум: "Начинающим";
Текущий архив: 2008.05.11;
Скачать: [xml.tar.bz2];
ВнизПоиск файлов по нескольким маскам и подкаталогам Найти похожие ветки
← →
Rhammer © (2008-04-11 16:36) [0]Столкнулся с данной проблемой. Мне нужно осуществить поиск файлов по нескольким маскам а точнее *.rar *.zip *.7z
Сейчас использую данный алгоритм:procedure TForm1.Button1Click(Sender: TObject);
Var SR:TSearchRec; // поисковая переменная
FindRes, n :Integer; // переменная для записи результата поиска
begin
ListBox1.Clear; // очистка компонента ListBox1 перед занесением в него списка файлов
n:= 0;
FindRes:=FindFirst(Button2.Caption+Edit1.Text,faAnyFile,SR); // задание условий поиска и начало поиска
While FindRes=0 do // пока мы находим файлы (каталоги), то выполнять цикл
begin
Inc(n);
archives[n]:=SR.Name;
ListBox1.Items.Add(SR.Name); // добавление в список название найденного элемента
FindRes:=FindNext(SR); // продолжение поиска по заданным условиям
end;
FindClose(SR); // закрываем поиск
Label1.Caption:="Количество найденных объектов: ";
Label2.Caption:=IntToStr(n);
end;
Поиск в гугл дал мне инфу о компоненте FileList, я скачал но так и не разобрался в нем. Подскажите пожалуйста как осуществить это
← →
clickmaker © (2008-04-11 16:43) [1]FileListBox
← →
Palladin © (2008-04-11 16:44) [2]по одной маске умеешь, а головы не несколько не хватает?
← →
<code> (2008-04-11 16:53) [3]>Мне нужно осуществить поиск файлов по нескольким маскам а точнее *.rar *.zip *.7z
Нужно искать файлы по маске *.*, и потом сравнивать:
begin
Inc(n);
// archives[n]:=SR.Name;
If LowerCase( ExtractFileExt(SR.Name) ) = ".rar" then
ListBox1.Items.Add(SR.Name); // добавление в список название найденного элемента
If LowerCase( ExtractFileExt(SR.Name) ) = ".zip" then
ListBox1.Items.Add(SR.Name); // добавление в список название найденного элемента
If LowerCase( ExtractFileExt(SR.Name) ) = ".7z" then
ListBox1.Items.Add(SR.Name); // добавление в список название найденного элемента
FindRes:=FindNext(SR); // продолжение поиска по заданным условиям
end;
А что бы по нескольким каталогам - надо сделать что бы функция сама себя вызывала - рекурсивно.
← →
clickmaker © (2008-04-11 17:00) [4]
> [3](11.04.08 16:53)
MatchesMask() не проще?
← →
Rhammer © (2008-04-11 17:09) [5]
> Palladin © (11.04.08 16:44) [2]
> по одной маске умеешь, а головы не несколько не хватает?
>
Исходник взял в инете, поэтому согласен головы не хватает.
>
Спасибо за помощь
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.05.11;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c