2012-09-19 14 views
0

可能重复:
Windows Folder Share API有没有办法使用WINAPI或Embarcadero C++ Builder XE创建共享目录/文件夹?

我需要我的C++应用程序偶尔创建共享目录。我正在使用Embarcadero C++ Builder XE,它只有CreateDir()函数,它无法指定共享访问。 Embarcadero C++ Builder环境中是否有任何内容可以让我简单地做到这一点,或者失败了,有没有一种简单的方法可以直接使用Windows API来实现这一点?我看了一下msdn页面,可以让我这样做,但我还没有找到明确记录的东西。

编辑具体来说,该文件夹及其内容需要可供网络上的所有其他机器访问。

+0

什么样的“共享”是什么意思?在机器上的用户之间共享,还是通过网络共享,或可能是其他内容? –

+0

@JerryCoffin对不起,我应该指定 - 在网络上共享。基本上应用程序创建需要网络上的其他机器可访问的日志文件 – mathematician1975

回答

3

要获得跨网络共享的目录,您需要先创建目录,然后告诉您的计算机通过网络共享它。创建目录本身与创建任何其他目录相同(即,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; 
} 
+0

感谢,看起来像我所需要的 – mathematician1975

+0

完美工作。 – mathematician1975

相关问题