Как получить список файлов со всеми подкаталогамиDelphi , Файловая система , ФайлыКак получить список файлов со всеми подкаталогами
Оформил: DeeCo Автор: Анатолий Подгорецкий 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 <> '.')thenbegin 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; Переведенный текст: Представленная процедура Delphi Разбивка работы:
Пример кода демонстрирует использование этой процедуры:
В целом, этот код предоставляет удобный способ рекурсивно сканировать директории и их поддиректории для файлов, соответствующих конкретным шаблонам, и хранить их в списке. Статья описывает функцию ScanDir, которая позволяет получить список файлов со всеми подкаталогами, используя Delphi и язык программирования Pascal. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |