Глава 5. Дисковые накопители.

Раздел 2. Работа с каталогами диска.

5.2.2 Создание/удаление подкаталога.

Программа может создавать или удалять подкаталоги, при выполнении некоторых условий. Для создания подкаталога необходимо, чтобы было по крайней мере одно пустое место в корневом каталоге. Для удаления подкаталога необходимо, чтобы он не содержал файлов или ссылок на другие подкаталоги. Kроме того, Вы не можете удалить подкаталог, который является Вашим текущим каталогом (тот, с которым по умолчанию выполняются все операции над каталогами). Отметим также, что невозможно удалить корневой каталог.

Средний уровень.

Поскольку управляющие блоки файлов обслуживают только корневой каталог, то для создания или удаления подкаталога надо использовать дескрипторы файлов. Создание подкаталога:

DS:DX должны указывать на строку, дающую накопитель и путь к каталогу, в котором должен быть создан подкаталог. Строка должна завершаться байтом ASCII 0. Для открытия подкаталога с именем PRIMATES в корневом каталоге накопителя A: надо записать строку в виде "A:\PRIMATES". Для открытия подкаталога в другом подкаталоге с именем MAMMALS напишите "A:\MAMMALS\PRIMATES". Имя накопителя A: может быть опущено если Вы работаете с накопителем, используемым по умолчанию, и путь может начинаться с текущего каталога. Поместите в AH 39H и выполните прерывание 21H; если указан правильный путь, то будет создан новый каталог. В противном случае будет установлен флаг переноса, а AX будет содержать код ошибки 3 (путь неверен) или 5 (нет доступа). В примере создается подкаталог PRIMATES:
;---в сегменте данных
PATH DB 'A:MAMMALS\PRIMATES',0
;---создаем подкаталог с именем PRIMATES
LEA DX,PATH ;DS:DX должны указывать на путь
MOV AH,39H ;номер функции
INT 21H ;создаем подкаталог
JC ERROR_ROUT ;обработка ошибок
Удаление подкаталога:

Для удаления подкаталога надо сформировать строку, в точностью совпадающую с той, которую Вы указывали при создании каталога. Затем поместите в AH 3AH и выполните прерывание 21H. Опять при невыполнении функции в AX будут возвращены коды 3 или 5 (код 5 может указывать, что каталог непустой).


<~-5.2.1 Чтение/изменение корневого каталога.
Содержание
5.2.3 Чтение/изменение подкаталога.-~>

Сайт управляется системой uCoz