Сборник по задачам и примерам Assembler



         

Поиск файлов и каталогов



Поиск файлов и каталогов

В Windows-версии MS DOS процесс поиска несколько отличается от рассмотре-ного выше. Для этого используются три функции и структура WIN32_FIND_DATA в памяти, в которой возвращается информация о файле. Для запуска процесса поиска вызывается функция 714eh — найти первый файл.

Вход: АН = 714eh; CL — атрибуты искомых файлов (0000h — файл доступен по записи и чтению; 0001h — файл доступен по чтению; 0002h — скрытый файл; 0004И — системный файл; 0008И — метка тома; 00lOh — каталог; 0020h — архивный файл); СН — дополнительные атрибуты искомых файлов (0000h — файл доступен по записи и чтению; 0001h — файл доступен по чтению; 0002h — скрытый файл; 0004h — системный файл; 0008h — метка тома; 00lOh — каталог; 0020h — архивный файл); DS:DX — адрес ASCIIZ-строки с именем искомого файла или каталога. Допускаются оба типа имен — длинные и короткие. В именах допустимы символы шаблона * и ?; ES-.DI — адрес структуры WI N32_F I ND_DATA, в которой будет возвращена ин-_ формация о файле; SI — формат, в котором возвращается дата и время

(О — дата и время возвращаются в 64-разрядном формате; 1 — дата и время возвращаются в формате MS DOS).

Выход: CF = 0 — успешное выполнение функции, в результате в регистрах АХ и СХ возвращается следующая информация: АХ = дескриптор, использующийся далее для процесса поиска; СХ = возможные значения: 0000 — все символы структуры WIN32_FIND_DATA, составляющие основное и альтернативное имя файла, успешно преобразованы из Unicode; 0001 — основное имя, возвращенное в структуре WIN32_FIND_DATA, содержит знаки подчеркивания на месте символов, не преобразованных из Unicode; 0002 — альтернативное имя, возвращенное в структуре WIN32_FIND_DATA, содержит знаки подчеркивания на месте символов, не преобразованных из Unicode; CF = 1 — АХ = код ошибки при неудачном выполнении функции. Вызов функции 714eh приводит к заполнению полей структуры WIN32_FIND_ DATA, после чего можно проанализировать ее поля. Основной интерес представляют поля основного (CfileName) и альтернативного (CaHernateFiieName) имен. Их можно анализировать на предмет удовлетворения условиям поиска. Если необходимо продолжить поиск, вызывается функция 714fh — найти следующий файл. Если же поиск считается удачным либо его необходимо прекратить, то вызывается функция 71alh — прекратить поиск. Ниже приведены порядок вызова функций 714fh и 71alh и формат структуры WIN32_FIND_DATA.




Содержание  Назад  Вперед