Страница 1 из 1
Поиск файлов по расширению
Добавлено: 05 окт 2011, 17:51
Dr_Grizzly
Всем привет! Подскажите, может кто уже сталкивался, как проще реализовать поиск файла с любым именем по расширению doc например, если заранее не известно сколько дисков есть в системе? Т.е. процесс должен включать в себя определение имен дисков в системе по которым будет осуществляться поиск. Реализация нужна без участия пользователя. Т.е он нажал кнопку найти - и прога выдала ему где лежат файлы с этим расширением. Заранее благодарен!
Re: Поиск файлов по расширению
Добавлено: 06 окт 2011, 15:09
Dr_Grizzly
Нашел решение:
Код: Выделить всё
procedure TForm1.FindFile(Dir:String);
Var SR:TSearchRec;
FindRes:Integer;
begin
FindRes:=FindFirst(Dir+'*.*',faAnyFile,SR);
While FindRes=0 do
begin
if ((SR.Attr and faDirectory)=faDirectory) and
((SR.Name='.')or(SR.Name='..')) then
begin
FindRes:=FindNext(SR);
Continue;
end;
// если найден каталог, то
if ((SR.Attr and faDirectory)=faDirectory) then
begin
// входим в процедуру поиска с параметрами текущего каталога +
// каталог, что мы нашли
FindFile(Dir+SR.Name+'\');
FindRes:=FindNext(SR);
// после осмотра вложенного каталога мы продолжаем поиск
// в этом каталоге
Continue; // продолжить цикл
end;
if (extractfileext(sr.Name)='.doc') then //сюда дописываем нужные нам расширения через OR
ListBox1.Items.Add(SR.Name);
FindRes:=FindNext(SR);
end;
FindClose(SR);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ListBox1.Clear; // очистка списка файлов
FindFile(Edit1.Text); // поиск файлов с начальными условиями, заданных в Edit1
end;
А определить диски может стандартная компонента DriveComboBox