Търсете файлове в Delphi, Delphi, компоненти на Delphi, източници на Delphi
Намиране на файлове в Delphi
Помислете за следния пример:
hFindFile: = FindFirst (маска за търсене, атрибути, информация);
// Проверяваме верността на намерения файл
ако hFindFile за INVALID_HANDLE_VALUE тогава
// Ако е правилно, цикълът започва да се повтаря - до, повторете
// Ето извлеченията, които трябва да бъдат изпълнени, докато (FindNext (Информация) около 0);
Намерете първи - отваря търсене. Първият параметър е маската за търсене. Ако посочите конкретен файл, системата ще го намери точно. Ти си толковаможете също да търсите цели групи файлове. Например можете да търсите всички файлове в основната директория на C: устройството. За това първият параметър трябва да е опОпределя се като— 'с: \ *. *". За да търсите само EXE файлове, в папката Fold трябва да посочите - 'c: \ Сгъване \ *. бивш.
Вторият параметър са атрибутите, използвани при търсене на файлове. За да търсите каквито и да е файлове, трябва да посочите faAnyFiie. Освен това можете да търсите, като следватеследните атрибути:
- faReadOnly - търсене на файлове с атрибут Readonly (само за четене);
- faHidden - търсене на скрити файлове;
- faSysFile - търсене на системни файлове;
- faArchive - търсене в архивни файлове;
- faDirectory - търсене в папки.
Последният параметър е структура, в която ще ни бъде върната информация за търсенето, а именно: името на намерения файл, размер, време на създаване и т.н.
След като извикаме тази процедура, трябва да проверим верността на намеренотофайл. Ако резултатът е invalid_handle_value, тогава функцията не намери файлове. Ако всичко е наред и съществува файл, който отговаря на критериите за търсене, тогава цикълът започва Повторете . .докато.
Вече разгледахме циклите, но все пак ще повторим и ще запомним тяхната работа. Цикълът изпълнява операторите между повторение и докато не е изпълнено условието след докато. Веднага щом условието е нарушено, цикълът се прекъсва.
Тук трябва да се отбележи, че функцията за търсене връща имена на файлове чрез параметъра Information и може да ни върне период или два периода като име. Ако погледнете папката, няма да има такива файлове. Откъде идват тези имена? Името на файла с точки показва текущата папка, а името на файла с двойни точки показваотива в папката от най-високо ниво. Ако срещнем такива имена, тогава те трябва да бъдатсто изхвърляне.
Параметърът за информация е от типа структура TSearchRec. Нека да го разгледаме по-отблизо. Рекламата изглежда така:
TSearchRec = Време на запис: Цяло число; // Време за създаване на намерения файл
Размер: Цяло число; // Размер на намерения файл
Attr: Цяло число; // Атрибути на намерения файл
Име: TFileName; // Име на намерения файл
ExcludeAttr: Integer; // Изключени атрибути на намерения файл
FindHandle: THandle; // За търсене се изисква указател
F.inddata: TWin32FindData; // Структура за търсене на файлове на Winndows
Функцията FindNext принуждава да намери следващия файл, съответстващ на двойкатаметри, посочени във функцията Намерете първи. Тази функция трябва да бъде предадена на структурата searchRec, която ще определи къде е спряно търсенето и от този момент тя ще продължи. Веднага щом бъде намерен нов файл, функцията ще върне информация за новооткрития файл в структурата на SearchRec.