Перечислить все папки и файлы

Если необходимо вывести в TStrings все файлы и папки то можно воспользоваться данной процедурой.  Процедура ScanDir так же может вывести все файлы по расширению (по маске).

Procedure ScanDir (StartDir: String; Mask:string; List:TStrings);

{ Процедура выводит список директории в список List, начиная с директории, указанной в StartDir. Mask — маска для получения файлов

Источник delphi.mastak.ru

© А. Подгорецкий }

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; {IF}

end;

 

Что бы запустить процедуру можно сделать так

ScanDir (StartDir,'',temp1); // Поместить все файлы в temp1, без учета расширения.

ScanDir (StartDir,'*.txt',temp1); // Поместить все файлы в temp1, с расширением txt.

 

About admin

Speak Your Mind

Tell us what you're thinking...
and oh, if you want a pic to show with your comment, go get a gravatar!

Подтвердите, что Вы не бот — выберите самый большой кружок: