Назначение данного модуля — заменить функции FindFirst..FindNext более удобным циклом for..in. Кроме того реализован рекурсивный поиск в поддиректориях.
Подсоединив модуль к проекту, можно осуществлять поиск файлов таким образом:
Код | var F: TFileInfo; begin // для поиска файлов только в заданной директории for F in SearchFiles('C:\Windows', '*.*') do Memo.Lines.Add(F.FileName);
// для поиска файлов в поддиректориях for F in SearchFilesRecursive('C:\Windows', '*', faAllTypes - faDirectory) do Memo.Lines.Add(F.FileName); |
Класс TFileInfo заменяет заполнение структуры TSearchRec, как это делают FindFirst/FindNext, что должно дать прирост в производительности. Нужные свойства извлекаются из _WIN32_FIND_DATA напрямую при непосредственном запросе к нужному свойству. Свойства предоставляются аналогичные имеющимся в TSearchRec:
Код | // Атрибуты файла property Attributes: Cardinal; // Полное имя файла (с путем) property FileName: string read GetFileName; // Только имя файла (без пути) property Name: string read GetName; // Короткое имя файла в формате 8.3 (ДОС) property NameDOS: string read GetNameDOS; // Размер файла property Size: Int64 read GetSize; // Время создания файла property Time: Integer read GetTime;
// Предоставляет прямой доступ к структуре _WIN32_FIND_DATA, // чтобы получить доступ к дополнительным данным, написания хелперов, и т.п. property FindData: TWin32FindData read FFindData; |
Также модуль содержит константы для всех типов файлов, существующих в современных версиях Windows. |