Как расшарить папку Страница 2. Как расшарить папку в Windows NT
|
Страница 2 из 3 Вариант 2 (NT)// Открытие общего доступа к папке в WinNT, Win2000 // Один из самых простых способов по критерию трудозатрат программиста // Для организации общего доступа используем командный процессор и команду 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; } Очевидно, что обе функции легко объединить в одну, и добавив третий параметр в список параметров первой функции, анализировать действие, толи открывать доступ, толи закрывать. |