Справочник программиста на персональном компьютере фирмы IBM. Дисковые накопители
Страница 9. Создание/удаление подкаталога


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


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

   Высокий уровень.


   Бейсик  предоставляет  команды MKDIR (создай каталог) и  RMDIR
(удали каталог).  За  обеими  должны  следовать  стандартные пути
указания каталога, содержащие до 63 символов, включая имя накопи-
теля.  Путь должен быть заключен в кавычки. Чтобы добавить подка-
талог  с именем STORKS в подкаталог BIRDS напишите MKDIR  "B:MAM-
MALS\BIRDS\STORKS".  После  выполнения  этой команды будет создан
файл STORKS, используемый как подкаталог и факт его существования
будет отражен в создании элемента с именем STORKS в подкаталоге с
именем BIRDS. Для удаления этого подкаталога надо сначала удалить
из него все файлы [5.3.2]. Затем  надо использовать команду RMDIR
"B:MAMMALS\BIRDS\STORKS".
   В  этих  примерах предполагалось, что Вашим текущим  каталогом
являлся корневой каталог.  Однако, если Ваш текущий каталог нахо-
дится  где-то  на пути к подкаталогу, над которым  осуществляются
операции, то нет необходимости указывать весь путь. Поэтому, если
Вашим текущим каталогом является BIRDS, то для создания или  уда-
ления  подкаталога  STORKS   можно   использовать  команды  MKDIR
"\STORKS" или RMDIR "\STORKS".

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


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

Создание подкаталога:
   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
может указывать, что каталог непустой).

 
« Предыдущая статья   Следующая статья »