Локальные сети персональных компьютеров. Работа с сервером Novell NetWare© Александр Фролов, Григорий ФроловТом 4, М.: Диалог-МИФИ, 1993, 168 стр. 4.5. Удаление файловДля удаления файлов из сетевых каталогов можно использовать функцию EraseFiles(): int EraseFiles(BYTE DirectoryHandle, char *FilePath, BYTE SearchAttributes); Эта функция удаляет файл, заданный параметрами DirectoryHandle и FilePath, если его атрибуты соответствуют указанным при помощи параметра SearchAttributes. Последнее означает, что, если вы собираетесь стирать нормальные, скрытые и системные файлы, для параметра SearchAttributes необходимо задать значение 06h. Функция возвращает 0 при успешном завершении или код ошибки:
4.5.1. Программа FERASEПрограмма FERASE (листинг 20) демонстрирует использование функции EraseFiles(). При запуске программе в качестве параметра необходимо передать путь к удаляемому файлу. // =================================================== // Листинг 20. Удаление файлов // Файл ferase\ferase.cpp // // (C) A. Frolov, 1993 // =================================================== #include <stdlib.h> #include <stdio.h> #include <string.h> #define BYTE unsigned char #define WORD unsigned int extern "C" int GetNetWareShellVersion(char *,char *, char *); extern "C" int EraseFiles(BYTE, char*, BYTE); void main(int argc, char *argv[]) { char MajorVersion=0; char MinorVersion=0; char Revision=0; int ccode; printf("\n*FERASE* (C) Frolov A., 1993\n"); // Проверяем наличие сетевой оболочки asm push si GetNetWareShellVersion(&MajorVersion, &MinorVersion, &Revision); asm pop si if(MajorVersion == 0) { printf("\nОболочка NetWare не загружена\n"); return; } // Необходимо задать путь к каталогу, удаляемые // и добавляемые права доступа if(argc < 2) { printf("Укажите путь к удаляемому файлу," "\nнапример: ferase sys:users\my.dat"); return; } // Параметр должен быть задан заглавными буквами strupr(argv[1]); ccode = EraseFiles(0, argv[1], 6); if(!ccode) printf("Файл %s удален\n", argv[1]); else printf("Ошибка %02.2X\n", ccode); } |