通过接近MAX_PATH长度的Windows网络访问文件

时间:2008-09-22 02:53:12

标签: c++ windows visual-c++ lan unc

我正在使用C ++并通过网络访问UNC路径。此路径略大于MAX_PATH。所以我无法获得文件句柄。

但是如果我在有问题的计算机上运行程序,路径不会大于MAX_PATH。所以我可以得到一个文件句柄。如果我将文件重命名为较少的字符(减去计算机名称的长度),我可以访问该文件。

是否可以通过网络访问此文件,即使知道UNC路径中的计算机名称是否超过MAX_PATH限制?

2 个答案:

答案 0 :(得分:10)

我记得有一些功能,例如在路径的开头使用\\?\来绕过MAX_PATH限制。以下是MSDN的参考资料:

http://msdn.microsoft.com/en-us/library/aa365247(VS.85).aspx

对于远程计算机,您将使用路径名称,例如:\\?\unc\server\share\path\file\\?\unc\是特殊前缀,不会用作实际文件名的一部分。

答案 1 :(得分:0)

如果在将文件名转换为短(8.3)文件名后尝试打开文件,则可以获取文件句柄。如果失败了你可以将文件作为驱动器映射到的dir并以这种方式访问​​文件吗?