c++ - 有没有办法使用 WINAPI 或 Embarcadero C++ Builder XE 创建共享目录/文件夹?

标签 c++ winapi c++builder-xe

<分区>

Possible Duplicate:
Windows Folder Share API

我需要我的 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;
}

关于c++ - 有没有办法使用 WINAPI 或 Embarcadero C++ Builder XE 创建共享目录/文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12498507/

相关文章:

delphi - 需要在windows中解析HMONITOR --> deviceName(或deviceName --> HMONITOR)

c++ - "standard output stream"和 "standard output device"有什么区别?

c++ - C++ Builder 图表中的固定步骤

c++ - 为什么在阻塞模式下不会为 TServerSocket 触发 OnClientConnect 和 OnClientError 事件

c++ - 这个逻辑看似正确,但行不通。有什么错误吗?

c++ - 从 Beast.1.0.0-b66 到 Boost.1.67.0.Beast 的端口性能下降

c++ - Windows编程中的DLL加载

c++ - 如何获取传递给函数的数组的长度?

c++ - Win32 控制台代码在哪里运行?从多个线程使用时控制台挂起

dll - C++ Builder XE 未链接所有运行时 DLL