1

可能重复:
Windows 文件夹共享 API

我需要我的 C++ 应用程序偶尔创建共享目录。我正在使用 Embarcadero C++ Builder XE,它只有CreateDir()无法指定共享访问的功能。Embarcadero C++ Builder 环境中是否有任何东西可以让我简单地做到这一点,或者如果失败了,有没有一种简单的方法可以直接使用 Windows API 做到这一点?我已经查看了 msdn 页面,寻找可以让我执行此操作的内容,但我还没有找到任何以清晰方式记录的内容。

编辑特别是该文件夹及其内容需要网络上的所有其他机器都可以访问。

4

1 回答 1

5

要通过网络共享目录,您需要首先创建目录,然后告诉您的计算机通过网络共享它。创建目录本身与创建任何其他目录相同(即 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;
}
于 2012-09-19T17:15:47.710 回答