2012-12-15 68 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