Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.143.9.115] |
|
Сообщ.
#1
,
|
|
|
Назначение данного модуля — заменить функции 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. Эта тема была разделена из темы "Обработчик цикла for..in по файловой системе" Прикреплённый файлFileEnum.zip (3.17 Кбайт, скачиваний: 232) |