【问题标题】:Accessing files across the windows network with near MAX_PATH length通过 Windows 网络访问接近 MAX_PATH 长度的文件
【发布时间】:2010-09-11 21:27:12
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    对于远程机器,您可以使用如下路径名:\\?\unc\server\share\path\file\\?\unc\ 是特殊前缀,不用作实际文件名的一部分。

    【讨论】:

    • 我将它用于本地路径,但不确定它是否/如何应用于远程计算机。
    【解决方案2】:

    如果您在将文件名转换为短 (8.3) 文件名后尝试打开文件,您可能会获得该文件的句柄。失败了,您可以将文件所在的目录映射为驱动器并以这种方式访问​​文件吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-29
      • 1970-01-01
      • 1970-01-01
      • 2011-12-15
      • 1970-01-01
      相关资源
      最近更新 更多