Как расшарить папку: Вариант 2

Открытие общего доступа к папке в WinNT, Win2000

Автор: Drunkard

Один из самых простых способов по критерию трудозатрат программиста. Для организации общего доступа используем командный процессор и команду net.
С этой целью в командной строке следовало бы написать, например :
net share sharefold=d:\temp\myserv Вот и реализуем этот метод через функцию на языке С. Полное описание net share смотри по команде net help share.

#include <stdlib.h>
// Описание функции
BOOL OpenShareNT(char* NetName, char* LocalName);
// В случае успеха возвращает TRUE, иначе FALSE.
// Первый параметр: LocalName - полный локальный путь к "расшариваемой" папке
// например "d:\\temp\\myserv" (Внимание! Путь не должен заканчиваться символом '\\')
// Второй параметр: NetName - имя, которое будет видно в сети (например "sharefold")
 
BOOL OpenShareNT(char* LocalName, char* NetName)
{
    BOOL AddShare=FALSE;
    char Str[MAX_PATH];
    int Error;
// Проверим доступен ли командный процессор
    Error=system(NULL);
 
    if(Error < 0)
    {
     // Обработчик ошибки: Командный процессор Windows недоступен.
    }
    else
    {
        sprintf(Str, "net share %s=%s", NetName, LocalName);
// При исполнении системной команды мелькнет черный экран - не пугайтесь :)
        Error=system(Str);
 
        if(Error < 0)
        {
         // Обработчик ошибки: Невозможно открыть Общий доступ к папке.
        }
        else AddShare=TRUE; // Успешно
    }
    return AddShare;
}
 
// Закрытие общего доступа к папке в WinNT, Win2000
#include <stdlib.h>
// Описание функции
BOOL CloseShareNT(char* NetName);
// В случае успеха возвращает TRUE, иначе FALSE.
// Параметр: NetName - существующее сетевое имя
 
BOOL CloseShareNT(char* NetName)
{
    BOOL CloseShare=FALSE;
 
    char Str[MAX_PATH];
    int Error;
// Проверим доступен ли командный процессор
    Error=system(NULL);
 
    if(Error < 0)
    {
     // Обработчик ошибки: Командный процессор Windows недоступен.
    }
    else
    {
        sprintf(Str, "net share %s /DELETE", NetName);
// При исполнении системной команды мелькнет черный экран - не пугайтесь :)
        Error=system(Str);
        if(Error < 0)
        {
         // Обработчик ошибки: Невозможно закрыть Общий доступ к папке.
        }
        else CloseShare=TRUE; // Успешно
    }
    return CloseShare;
}
 
faq/c_c_/share2.txt · Последние изменения: 2006/05/10 14:18 (внешнее изменение)
 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki