【问题标题】:how to use SHCreateStreamOnFileEx to create a file with a long UNC path如何使用 SHCreateStreamOnFileEx 创建具有长 UNC 路径的文件
【发布时间】:2013-11-28 09:24:26
【问题描述】:

当我使用 SHCreateStreamOnFileEx 创建具有长 UNC 路径(WCHAR,如 \?\UNC\localhost\long.......long.....path\abc.txt)的流时,我得到了错误“0x80070003 系统找不到指定的路径。”。

来自http://msdn.microsoft.com/en-us/library/windows/desktop/bb759866(v=vs.85).aspx

备注 SHCreateStreamOnFileEx 函数扩展了 STGM 标志的语义并产生与调用 CreateFile 函数相同的效果。

来自http://msdn.microsoft.com/en-us/library/windows/desktop/aa363858(v=vs.85).aspx, *lpFileName [输入] 在此函数的 ANSI 版本中,名称仅限于 MAX_PATH 字符。 要将此限制扩展到 32,767 个宽字符,请调用函数的 Unicode 版本并将 "\?\" 附加到路径中。有关详细信息,请参阅命名文件、路径和命名空间。*

有人知道如何让 SHCreateStreamOnFileEx 支持长 UNC 路径吗?

谢谢!

【问题讨论】:

    标签: windows api unc


    【解决方案1】:

    CreateFile 函数要求您将\\server\share\path 转换为\\?\UNC\server\share\path,即开头的两个反斜杠。如果这不起作用,那么SHCreateStreamOnFileEx 不支持长路径。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-16
      • 1970-01-01
      • 2013-11-15
      • 1970-01-01
      • 2013-08-24
      相关资源
      最近更新 更多