Sayfayı Yazdır | Pencereyi Kapat


Alt Klasörlerde Dosya Aratıp Listeletmek

Kategori: DELPHI - 7
Eklenme Tarihi: 23 Haziran 2005
Zaman: 22 Mayıs 2012 12:41
Samanalevi Netkafe - http://www.samanalevi.com/bilgisayaroku/75.Alt_KlasOrlerde_Dosya_Aratip_Listeletmek.html

{
Form1'in üzerindeki Memo1'e bulunan dosyalari ekler.
Not: Kod recursion kullanmakta. Cok fazla (Binlerce)
dosya bulundugunda Stack Overflow hatasi verebilir
}


procedure TForm1.FindFiles(StartDir, FileMask: string);
var
SR: TSearchRec;
DirList: TStringList;
IsFound: Boolean;
i: integer;
begin
if StartDir[length(StartDir)] <> '\' then
    StartDir := StartDir + '\';


IsFound :=
    FindFirst(StartDir+FileMask, faAnyFile-faDirectory, SR) = 0;
while IsFound do begin
    Memo1.Lines.Add(StartDir + SR.Name);
    IsFound := FindNext(SR) = 0;
end;
FindClose(SR);

DirList := TStringList.Create;
IsFound := FindFirst(StartDir+'*.*', faAnyFile, SR) = 0;
while IsFound do begin
    if ((SR.Attr and faDirectory) <> 0) and
        (SR.Name[1] <> '.') then
      DirList.Add(StartDir + SR.Name);
    IsFound := FindNext(SR) = 0;
end;
FindClose(SR);

for i := 0 to DirList.Count-1 do
    FindFiles(DirList, FileMask);
DirList.Free;
end;

// Kullanimi:
FindFiles('C:\windows\', '*.txt');

DELPHI - 7


Sayfayı Yazdır | Pencereyi Kapat 

http://www.samanalevi.com