Локальные сети персональных компьютеров. Работа с сервером 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);
}
|

