Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Вывести все файлы директории

Delphi , Файловая система , Директории

Вывести все файлы директории

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

procedure ListFileDir(Path: string; FileList: TStrings);
 var
   SR: TSearchRec;
 begin
   if FindFirst(Path + '*.*', faAnyFile, SR) = 0 then
   begin
     repeat
       if (SR.Attr <> faDirectory) then
       begin
         FileList.Add(SR.Name);
       end;
     until FindNext(SR) <> 0;
     FindClose(SR);
   end;
 end;

 procedure TForm1.Button1Click(Sender: TObject);
 begin
   ListFileDir('C:\WINDOWS\', ListBox1.Items);
 end;

Here's a translation of the provided content into Russian:

Код на языке Delphi - это процедура, которая выводит список файлов в указанной папке и ее подпапках. Процедура ListFileDir принимает два параметра: Path, который является путем директории для поиска, и FileList, которое является объектом TStrings, где добавляются имена файлов.

Разбивка кода:

  1. Инициализируется переменная TSearchRec с именем SR.
  2. Вызывается функция FindFirst с тремя параметрами:
    • Path + '*.*': Это шаблон поиска. Вилдкард '*.*' соответствует любому имени файла и расширению.
    • faAnyFile: Это атрибут поиска, который означает, что будет найдено как файлы, так и директории.
    • SR: Это переменная записи для хранения результатов поиска.
  3. Если функция FindFirst возвращает 0 (что означает, что был найден совпадение), код enters a loop, который продолжается до тех пор, пока не будут найдены больше совпадений (FindNext возвращает 0).
  4. Внутри цикла проверяется, является ли текущий файл атрибутом не директории (SR.Attr <> faDirectory). Если это условие истинно, то добавляется имя файла в FileList.
  5. После завершения цикла закрывается поисковый хендл с помощью функции FindClose.

Вторая процедура, Button1Click, является обработчиком события клика кнопки на форме. Она вызывает ListFileDir с двумя параметрами: 'C:\WINDOWS\' (путь директории) и ListBox1.Items (элементы списка).

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

Альтернативное решение - использовать класс TDirectory и его метод ListFiles, чтобы достичь аналогичного результата:

procedure ListFileDir(Path: string; FileList: TStrings);
begin
  FileList.Assign(TDirectory.EnumerateFiles(Path));
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ListFileDir('C:\WINDOWS\', ListBox1.Items);
end;

Эта APPROACH более компактна и легче в обслуживании, но стоит отметить, что TDirectory доступен только в Delphi XE2 и позднее. Для ранних версий код будет работать нормально.

В статье описана процедура на языке Delphi, которая выводит список файлов в заданной директории в виде списка элементов.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Директории ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 12:26:38/0.0036900043487549/0