Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы СПО / Мет6.doc
Скачиваний:
28
Добавлен:
12.04.2015
Размер:
406.02 Кб
Скачать

4.4. Опрос и изменение свойств файлов

В параграфе описаны функции для получения атрибутов файлов и каталогов, размера и даты модификации файлов, а также способы изменения этих параметров.

4.4.1. Атрибуты

Получить атрибуты файла/каталога DOS

Вход: AX = 4300h

DS:DX = адрес ASCIIZ строки с именем файла.

Выход: CF=0, если ошибок нет; атрибуты в CX

CF=1 – ошибка, код в AX (02h – файл не найден, 03h – путь не найден)

Изменить атрибуты файла DOS

Вход: AX = 4301h

DS:DX = адрес ASCIIZ строки с именем файла

CX = новые атрибуты

Выход: CF=0, если операция выполнена успешно;

CF=1 – ошибка, код в AX (02h – файл не найден,

03h – путь не найден, 05h – доступ запрещен,

0Ch – неверный режим доступа)

Получить/установить атрибуты файла/каталога с длинным именем

Функция не позволяет менять атрибуты каталогов.

Вход: AX = 7143h

DS:DX = адрес ASCIIZ строки с именем файла

BX = действие (0 – получить атрибуты, 1 – установить)

CX = новые атрибуты (для функции установки атрибутов)

Выход: CF=0, если ошибок нет, атрибуты в CX;

CF=1 – ошибка, код в AX (02h – файл не найден, 03h – путь не найден, 05h – доступ запрещен)

4.4.2. Дата и время последней модификации

Получить дату/время последней модификации файла

Вход: AX = 5700h

BX = файловый манипулятор

Выход: CF=0 – ошибок нет, в CX время, в DX – дата в формате DOS (см. табл.1)

CF=1 – ошибка, код ошибки в AX (06h – неверный файловый манипулятор).

Установить дату/время последней модификации файла

Вход: AX = 5701h

BX = файловый манипулятор

CX = время в формате DOS (см. табл.1)

DX = дата в формате DOS (см. табл.1)

Выход: CF=0 – ошибок нет;

CF=1 – ошибка, код в AX (06h – неверный файловый манипулятор)

Эта функция корректно меняет время файла, открытого для чтения. У файла, в который записывали, дата и время модификации устанавливается при его закрытии.

4.5. Перемещение и удаление файлов

В DOS функции перемещения и удаления работают с одним файлом. Для удаления группы файлов приходится вызывать операцию для каждого файла индивидуально. Функция LFN удаления способна обрабатывать за раз группу файлов, заданную по маске и атрибутам.

Переименовать/переместить файл или каталог

Вход: AH = 56h

DS:DX = адрес ASCIIZ строки со старым именем

ES:DI = адрес ASCIIZ строки с новым именем

Выход: CF=0, если операция выполнена успешно;

CF=1 – ошибка, код в AX (02h – файл не найден,

03h – путь не найден, 05h – доступ запрещен,

0Ch – неверный режим доступа, 10h – попытка переместить текущий каталог)

Переименовать/переместить файл(ы) с длинным именем

Вход: AX = 7156h

DS:DX = адрес ASCIIZ строки со старым именем файла

ES:DI = адрес ASCIIZ строки с новым именем

Выход: CF=0, если файл удален

CF=1 – ошибка, код в AX (02h – файл не найден,

03h – путь не найден, 05h – доступ запрещен,

0Ch – неверный режим доступа, 10h – попытка переместить текущий каталог)

Перемещение объектов между разными дисками выполняется не через функцию 56h, а в два этапа: сначала копировать, затем удалить оригинал.

Удалить файл DOS

Вход: AH = 41h

DS:DX = адрес ASCIIZ строки с именем файла (в имени не должно быть символов «*» и «?»)

Выход: CF=0, если файл удален

CF=1 – ошибка, код в AX (02h – файл не найден,

03h – путь не найден, 05h – доступ запрещен)

Функция не удаляет файлы с атрибутом readonly, возвращая ошибку с кодом 05h (доступ запрещен).

Удалить файл(ы) с длинным именем

Вход: AX = 7141h

DS:DX = адрес ASCIIZ строки с именем файла (имя может содержать символы «*» и «?»)

CL = атрибуты, которые файлы могут иметь

CH = атрибуты, которые файлы должны иметь

SI = разрешение масок и атрибутов (0 – маски запрещены, атрибуты игнорируются, удаляется единственный файл;

1 – удаляется группа файлов по маске и атрибутам в CX)

Выход: CF=0, если файл удален

CF=1 – ошибка, код в AX (02h – файл не найден,

03h – путь не найден, 05h – доступ запрещен)

Функция удаляет все файлы, даже с атрибутом readonly.

Соседние файлы в папке Лабы СПО