2012-12-15 136 views
1

我在使用本機C++打開位於Windows盒子上的網絡驅動器上的文件時遇到問題。如果文件是本地的,我的代碼工作正常,但如果文件在網絡共享上,則代碼失敗。我可以很好地從Windows資源管理器中讀取文件。C++ - 無法在Windows中的網絡路徑中打開文件

ifstream ifs(cFilename); 
    if(ifs.is_open()) 
    { 
    // Read file here. (This never works for a network path) 
    } 

我也試過這樣:

struct stat sb; 
if (stat(cFilename, &sb) == 0) 
{ 
    // Read file here. (This never works for a network path) 
} 

我的路徑格式正確(如 「\\服務器\ FILENAME.EXT」),但我還是不能打開它。有任何想法嗎?

+0

首先想到,你有沒有檢查過你有權限讀取文件? – Rafael

+0

我可以通過Windows資源管理器讀取和寫入文件。我的應用程序是否需要特定的權限? – Kenji

+0

不,它沒有,除非這個應用程序是一個服務,這導致我第二個想法,這是一個服務控制檯或桌面應用程序? – Rafael

回答

1

如果名稱的格式爲\\server\filename,那麼它似乎可能不正確。我認爲,通常它需要一個共享名稱,以及:

\\server\share\filename 

此外,確保在代碼中,你逃避反斜槓(例如,\\\\server\\share\\filename)。

+1

\\\\ server \\ share \\ filename – TazMainiac

+0

謝謝!我以這種方式輸入了他們,忘了回覆它......然後甚至沒有看結果。壞我。 –

+0

是的,我添加了額外的斜線。我有權通過Windows資源管理器讀取和寫入文件。我的應用程序是否需要特定的權限? – Kenji

相關問題