如何使用SHCreateStreamOnFileEx创建具有长UNC路径的文件

时间:2013-11-28 09:24:27

标签: windows api unc

当我使用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 [in] 在此函数的ANSI版本中,名称仅限于MAX_PATH字符。 要将此限制扩展为32,767个宽字符,请调用该函数的Unicode版本,并在路径中添加“\?\”。有关更多信息,请参阅命名文件,路径和命名空间。*

任何人都知道如何让SHCreateStreamOnFileEx支持长UNC路径?

谢谢!

1 个答案:

答案 0 :(得分:0)

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