如何使用 SHCreateStreamOnFileEx 创建具有长 UNC 路径的文件
Posted
技术标签:
【中文标题】如何使用 SHCreateStreamOnFileEx 创建具有长 UNC 路径的文件【英文标题】:how to use SHCreateStreamOnFileEx to create a file with a long UNC path 【发布时间】: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 路径吗?
谢谢!
【问题讨论】:
【参考方案1】:CreateFile
函数要求您将\\server\share\path
转换为\\?\UNC\server\share\path
,即开头的两个反斜杠。如果这不起作用,那么SHCreateStreamOnFileEx
不支持长路径。
【讨论】:
以上是关于如何使用 SHCreateStreamOnFileEx 创建具有长 UNC 路径的文件的主要内容,如果未能解决你的问题,请参考以下文章
如何在自动布局中使用约束标识符以及如何使用标识符更改约束? [迅速]
如何使用 AngularJS 的 ng-model 创建一个数组以及如何使用 jquery 提交?