function GetFileCount(Dir: string): integer;
var
fs: TSearchRec;
begin
Result := 0;
if FindFirst(Dir + '\*.htm', faAnyFile - faDirectory - faVolumeID, fs) = 0
thenrepeat
inc(Result);
until
FindNext(fs) <> 0;
FindClose(fs);
end;
Here's a translation of the text into Russian:
Функция Delphi, написанная на языке Pascal, которая считает количество файлов с расширением ".htm" в указанной папке.
Разбивка работы функции:
Функция GetFileCount принимает строковый параметр Dir, представляющий путь к директории для поиска.
Переменная fs объявляется как TSearchRec, тип, используемый для поиска файлов и директорий в Delphi.
Переменная Result инициализируется значением 0, которое будет хранить количество найденных файлов.
Функция использует процедуру FindFirst для поиска файлов с расширением ".htm" в указанной папке. Параметры поиска:
Dir + '\*.htm': путь к директории, за которым следует диапазон wildcard для файлов с расширением ".htm".
faAnyFile: указывает, что мы хотим найти любые типы файлов (не только директории).
faDirectory - faVolumeID: исключает директории и идентификаторы тома из результатов поиска.
fs: переменная TSearchRec будет хранить результат поиска.
Если поиск успешен, функция входит в цикл, который увеличивает значение Result для каждого найденного файла с помощью inc(Result).
Цикл продолжается, пока не будут найдены более файлов, что указывается возвращаемым значением FindNext(fs) равным 0.
Наконец, функция вызывает процедуру FindClose(fs) для освобождения системных ресурсов, использованных при поиске.
Альтернативное решение с использованием более современного подхода:
function GetFileCount(Dir: string): integer;
var
Files: TStringList;
begin
Files := TStringList.Create;
try
Files.DirSearch(Dir + '\*.htm');
Result := Files.Count;
finally
Files.Free;
end;
end;
В этом альтернативном решении мы используем объект TStringList для поиска файлов с расширением ".htm" в указанной папке. Метод DirSearch используется для поиска файлов, а свойство Count объекта TStringList используется для получения количества найденных файлов. Этот подход более компактен и легче для чтения, чем оригинальный код.
В статье описывается функция на языке Delphi, которая подсчитывает количество файлов в определенной папке.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.