2012-09-19 11 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

相關問題