![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Файлы, файлы, файлы... [D6, Win95/98]
Delphi Maniak © (2002-11-07 11:43:00)Подскажите плз, как сделать поиск в определенной папке по файлам с расширением acct и вывести список найденных файлов в TListView или TMemo. СРОЧНО!
Separator (2002-11-07 12:05:00) [1]эээ, в общем каждый день одно и тоже
KoluChi (2002-11-07 11:57:00) [2](fido7.ru.delphi):
procedure ScanDir(StartDir: string; Mask:string; List:TStrings);
var
SearchRec : TSearchRec;
begin
if Mask = "" then Mask := "*.*";
if StartDir[Length(StartDir)] <> "\" then StartDir := StartDir + "\";
if FindFirst(StartDir+Mask, faAnyFile, SearchRec) = 0 then
begin
repeat
Application.ProcessMessages;
if (SearchRec.Attr and faDirectory) <> faDirectory then
List.Add(StartDir + SearchRec.Name)
else if (SearchRec.Name <> "..") and (SearchRec.Name <> ".") then begin
List.Add(StartDir + SearchRec.Name + "\");
ScanDir(StartDir + SearchRec.Name + "\",Mask,List);
end;
until FindNext(SearchRec) <> 0;
FindClose(SearchRec);
end;
end;
Пример вызова. параметры
1. имя папки
2. маска, по умолчанию *.*
3. хранилище для резульатат, любой наследник от TString, например TStringList
procedure TForm1.Button1Click(Sender: TObject);
begin
ListBox1.Items.Clear;
ScanDir("c:","",ListBox1.Items);
Label1.Caption := IntToStr(ListBox1.Items.Count);
end;
Анатолий Подгорецкий
anatoly@podgoretsky.com
Separator (2002-11-07 11:54:00) [3]procedure Find(Path: string; List: TStrings);
var
F: TSearchRec;
begin
if Path[Length(Path)] <> "\" then
Path:= Path + "\";
List.Clear;
if FindFirst(Path + "*.acct", faAnyFile, F) = 0 then
repeat
List.Add(F.Name)
until FindNext(F) <> 0;
FindClose(F)
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Find("C:\", ListBox1.Items);
end;