Возможный дубликат:
API общего доступа к папкам Windows
Мне нужно мое приложение C ++ для периодического создания общих каталогов. Я использую Embarcadero C ++ Builder XE, который имеет только CreateDir()
функция, которая не имеет возможности указать общий доступ. Есть ли что-то в среде Embarcadero C ++ Builder, которая позволила бы мне сделать это просто, или, в случае неудачи, есть простой способ сделать это напрямую с помощью Windows API? Я заглянул на страницы msdn, чтобы кое-что позволить мне сделать это, но мне еще предстоит найти что-то задокументированное в понятной форме.
РЕДАКТИРОВАТЬ В частности, папка и ее содержимое должны быть доступны для всех других компьютеров в сети.
Чтобы получить общий доступ к каталогу по сети, необходимо сначала создать каталог, а затем указать компьютеру, чтобы он был доступен по сети. Создание самого каталога аналогично созданию любого другого каталога (т. Е. CreateDir должен работать нормально).
Оттуда вам нужно поделиться каталогом. Вы делаете это с NetShareAdd
. Вот (действительно упрощенный, но протестированный) пример кода:
#include <windows.h>
#include <lm.h>
int main() {
SHARE_INFO_2 info = {0};
info.shi2_netname = L"test_share";
info.shi2_type = STYPE_DISKTREE;
info.shi2_permissions = ACCESS_ALL;
info.shi2_max_uses = -1;
info.shi2_path = L"C:\\local\\path";
NetShareAdd(NULL, 2, (BYTE *)&info, NULL);
return 0;
}
Других решений пока нет …