Перечислить все папки и файлы
Если необходимо вывести в 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.