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

Is there a way to create a shared directory/folder using WINAPI or Embarcadero C++ Builder XE?

本文关键字:共享 创建 XE 文件夹 Builder C++ WINAPI Embarcadero 有没有      更新时间:2023-10-16

可能的重复项:
Windows 文件夹共享 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;
}