Търсете файлове в 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.