【问题标题】:\\?\UNC\server\share\path\file.exe not working\\?\UNC\server\share\path\file.exe 不工作
【发布时间】:2016-02-04 14:46:39
【问题描述】:

我正在一个项目中工作,该项目存储路径很长的文件。

我需要使用网络路径,例如\\server\share\files.. 路径。但我无法弄清楚为什么它不起作用。我正在运行 Win7

\\server\share\path\file.exe(这有效,但不适用于很长的路径 ~266 字符长)

此 wiki 页面 https://en.wikipedia.org/wiki/Path_%28computing%29 指定语法 \\?\UNC\server\share\path\file.exe 应该适用于较长的路径,但我无法让它适用于长路径或短路径。Win7 不支持?

任何人都有一个解决方案,我如何使用长度约为 266 个字符的 \\xxx 语法来指向长网络路径?

【问题讨论】:

  • 语法在 Windows 7 上显示。问题的最可能原因是您没有使用 Unicode API 函数,ANSI API 函数不支持长路径。如果这不能解决问题,请发布示例代码。
  • 例如在 Windows 资源管理器中打开此(屏蔽)路径不起作用.. 如果我在 cmd-prompt 中写入“more ”...路径:\\?\UNC\xx.xxxxxxx.xxx \ XXXXXXXXXX \ XXX \ XXXXXX \ xx_xxxx \ XX \ XXXXXXX \ XXXX \ xxxxxx.xxxxxxxx \ 20160204_150537_251895 \ xxxxxxxx_xxxx \ xxx2x2150_xx-xxx687_20131010_103748 \ XXXXXXXX \ xxx_xxx_xx_xx_2072212_xx_xxx_13411218_xx_xxx_14_1_xxxxxxx2_xxx_2012305x_xx_xxxx_xxx_xxxxxxx_2014542x.csv 跨度>
  • 不,资源管理器不支持长文件路径,大多数命令解释器的内置命令也不支持。但它应该可以在您的应用程序中使用,前提是您使用 Unicode API。 (一个奇怪的是,命令解释器接受本地驱动器的长路径语法,只要路径实际上不是太长,但根本不接受 UNC 路径的长路径语法。我不确定的意义。)

标签: windows windows-7 unc network-drive network-share


【解决方案1】:

感谢 Harry Johnston,作为我如何解决问题的总结:

  • Windows 资源管理器不支持\\?\UNC\.. 语法。
  • \\?\UNC\server\folder\.. 与Python 3.4 和shutil.copy2() 一起使用非常好。 (我假设使用上述 cmets 中提到的 Unicode API)

当向用户提供目录路径时,我会删除 ?\UNC\ 并为他们留下一个简单的 \\server\path\.. 路径..(如果他们愿意,可以将其复制粘贴到 Windows 资源管理器中并打开目录。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-22
    • 2017-11-26
    • 2016-05-31
    • 2013-10-22
    • 1970-01-01
    • 2021-06-30
    • 1970-01-01
    相关资源
    最近更新 更多