<
Электронная библиотека книг Александра Фролова и Григория Фролова.
Shop2You.ru Создайте свой интернет-магазин
Библиотека
Братьев
Фроловых

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

© Александр Фролов, Григорий Фролов
Том 4, М.: Диалог-МИФИ, 1993, 168 стр.

[Назад] [Содеожание] [Дальше]

4.5. Удаление файлов

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

int EraseFiles(BYTE DirectoryHandle,
  char *FilePath, BYTE SearchAttributes);


Эта функция удаляет файл, заданный параметрами DirectoryHandle и FilePath, если его атрибуты соответствуют указанным при помощи параметра SearchAttributes. Последнее означает, что, если вы собираетесь стирать нормальные, скрытые и системные файлы, для параметра SearchAttributes необходимо задать значение 06h.

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

Код ошибки Значение
0x98 Указанный сетевой том не существует
0x9B Индекс файла указан неправильно
0x9C Путь к файлу указан неправильно
0xFF Файл не найден

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);
}
[Назад] [Содеожание] [Дальше]