Получение и изменение атрибутов файла
Переименовать файл
Для переименования файла используется функция 56h.
Вход: АН = 56h; DS:DX – ASCIZ-имя существующего файла; ES:DI – ASCIZ-имя нового файла; CL = маска атрибутов.
Выход: CF = 0 – при успешном переименовании; CF = 1 – АХ = код ошибки: 2 – файл не найден; 3 – несуществующий путь; 5 – доступ запрещен; 1 lh – устройства для старого и нового файлов не совпадают.
Функция 56h позволяет произвести перемещение между каталогами, не изменяя устройства.
;prg07_13.asm – программа перемещения между каталогами. ;не изменяя устройства функцией 56h. ¦ .data fname_s db "maket.asm".О point_fname_s dd fname_s fname_d db "e:\maket.asm".0 point_fname_d dd fname_d .code ;…..переместим файл из текущего в корневой каталог------ Ids dx.point_fname_s:формируем указатель на строку fname_s (исх. файл) 1 es di,point_fname_d;формируем указатель на строку fname_d (целевой файл) Imov ah.56h;номер функции DOS int 21h jc exit;переход в случае ошибки
Получить дату и время создания или последней модификации файла
Получить/изменить дату и время создания или модификации файла можно с помощью подфункций функции 57h.
Вход: АХ = 5700h; ВХ = дескриптор файла.
Выход: если CF = 0: СХ = время, DX = дата.
Если CF = 1: АХ = код ошибки (CF = п. 1 – недопустимый номер подфункции в А1; 6 – недопустимый дескриптор Время и дата файла получаются в следующих форматах.
Время | Дата | ||
---|---|---|---|
Биты | Описание | Биты | Описание |
15-11 | Часы (0-23) | 15-9 | Год |
10-5 | Минуты | 8-5 | Месяц |
4-0 | Секунды | 4-0 | День |
Установить дату и время создания или последней модификации файла
Вход: АХ = 5701п; ВХ – дескриптор файла; СХ – новое время, DX = новая дата.
Выход: если CF = 0: СХ = время, DX = дата. Если CF = 1 – АХ = код ошибки: 1 – недопустимый номер подфункции в А1; 6 – недопустимый дескриптор.