Локальные сети персональных компьютеров. Работа с сервером Novell NetWare


Создание, переименование и удаление каталогов - часть 2


/p>

Для переименования уже существующего каталога следует воспользоваться функцией RenameDirectory():

int RenameDirectory(BYTE DirectoryHandle, char* DirectoryPath, char *NewDirectoryName);

Путь к каталогу, имя которого надо изменить, задается параметрами DirectoryHandle и DirectoryPath таким же образом, как и в предыдущей функции. Параметр NewDirectoryName задает новое имя, которое должно иметь размер не более 15 байт.

Функция возвращает ноль в случае успешного завершения или код ошибки:

Код ошибки Значение
0x8B У пользователя недостаточно прав для переименования подкаталога
0x9B Неправильно задан индекс каталога в параметре DirectoryHandle
0x9С Неправильно указан путь к каталогу
0x9E Неправильно задано имя каталога

Для удаления каталога предназначена функция DeleteDirectory():

int DeleteDirectory(BYTE DirectoryHandle, char* DirectoryPath);

Параметры этой функции задают путь к удаляемому каталогу.

Функция возвращает нулевое значение или код ошибки:

Код ошибки Значение
0x8A У пользователя недостаточно прав для удаления каталога
0x98 Указанный при удалении каталога том не существует
0x9B Неправильно задан индекс каталога в параметре DirectoryHandle
0x9С Неправильно указан путь к каталогу
0x9F Каталог используется в настоящее время кем-то из пользователей и не может быть удален
0xA0 Удаляемый каталог содержит файлы или подкаталоги, в то время как удалять можно только пустые каталоги

Для создания каталога без помощи функций библиотеки NetWare C Interface вам следует воспользоваться функцией E2h прерывания INT21h:

На входе: AH = E2h;
DS:SI = Адрес буфера запроса;
ES:DI = Адрес буфера ответа.
На выходе: AL = Код ошибки или 0, если операция завершилась без ошибок.

Буфер запроса имеет следующий формат:

struct REQUEST { WORD PacketLength; // размер пакета запроса BYTE Function; // должно быть равно 10 BYTE DirectoryHandle; // индекс каталога BYTE MaximumGightsMask; // маска прав каталога BYTE PathLength; // длина пути к каталогу BYTE DirectoryPath[PathLength]; // путь к каталогу };




Начало  Назад  Вперед