Elsper » Архив блога » Delphi. Получение списка всех файлов в папке и ее подпапках.

Почему то никогда не любил работать с файловой системой, поэтому код представленный ниже я предпочел бы иметь в готовом виде, а не писать заново при необходимости.

Поэтому оставлю его здесь.

procedure GetAllFiles( Path: string; Lb: TListBox );
var
sRec: TSearchRec;
isFound: boolean;
begin
isFound := FindFirst( Path + ‘\*.*’, faAnyFile, sRec ) = 0;
while isFound do
begin
if ( sRec.Name <> ‘.’ ) and ( sRec.Name <> ‘..’ ) then
begin
if ( sRec.Attr and faDirectory ) = faDirectory then
GetAllFiles( Path + ‘\’ + sRec.Name, Lb );
Lb.Items.Add( Path + ‘\’ + sRec.Name );
end;
Application.ProcessMessages;
isFound := FindNext( sRec ) = 0;
end;
FindClose( sRec );
end;

И вызов что-нибудь типа:  GetAllFiles( ‘C:\’, listbox1 );

p.s. я его честно где-то стащил. :)


Автор: Elsper.ru


Комментарии (4) на запись “Delphi. Получение списка всех файлов в папке и ее подпапках.”

  1. Руслан пишет:

    isFound := FindFirst( Path + ‘\\\\*.*’, faAnyFile, sRec ) = 0; Я не прогер и поэтому все что увидел в этой строке это целых два смайлика, а автор поста их тут увидит, интересно? А то ведь мы видим только то что привыкли. Можно еще пару символов за смайл принять, но как то не особо.

  2. Elsper пишет:

    Ну приглядевшись, смайлики конечно видно.

    Так же как узоры букв в книге если её не читать, а рассматривать.

  3. Alex пишет:

    var sr: TSearchRec;
    begin
    Memo1.Clear;
    if FindFirst(’C:\*.*’, faAnyFile, sr) = 0 then
    begin
    repeat
    Memo1.Lines.Add(sr.Name);
    until FindNext(sr) 0;
    FindClose(sr);
    end;
    end;

  4. Elsper пишет:

    Хорошо, но не то.
    Код в посте заходит в папки. И выдает полное дерево. Твой, нет.

Оставить комментарий

Рейтинг блогов

Рейтинг блогов