Windows 10中是否仍然存在MAX_PATH问题


78

有人可以告诉我们我是否在Windows 10(技术预览)中仍然存在MAX_PATH问题。如果存在:路径和单个文件名可以包含几个字符?


12
当您投反对票时,请发表评论。例如一些URL,可以轻松找到答案。或者问题本身出了什么问题。
dkeck

尝试Build 14352并设置GP入口
magicandre1981 '16

使用组策略设置或手动更改注册表。参见news.slashdot.org/story/16/05/31/0012222/…–
霍尔姆

我最近在安装Python时看到了这一点,因为它们在安装后可以选择禁用MAX_PATH限制。为什么有人最终会使用超过260个字符的路径名?
Ungeheuer

Answers:


72

Windows中将始终存在该问题,以保持与旧软件的兼容性。使用NT样式名称语法 "\\?\D:\very long path"来解决此问题。

在Windows 10(版本1607-周年更新)和Windows Server 2016中,您似乎可以通过覆盖enable NTFS long pathsComputer Configuration-> Admin Templates-> System->下的组策略条目来忽略MAX_PATH问题FileSystem

在此处输入图片说明

在此处输入图片说明

应用程序必须longPathAware在应用程序清单中具有类似于DPIAware的条目。

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" >
  <asmv3:application>
    <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">
      <longPathAware>true</longPathAware>
    </asmv3:windowsSettings>
  </asmv3:application>
</assembly>

14
为什么Linux或Mac没有面对这些兼容性问题?为什么不能将非Unicode Win32文件API扩展(在现有IO处理功能中存在某些条件)以使其能够使用,例如MAX_PATH2 = 4096(或巧妙的动态分配)。然后,旧软件将仅使用实施的遗留部分。但是新软件,特别是Microsoft产品(包括cmd,explorer,powershell,VS)应利用这些新功能。操作系统应该掩盖所有这些技术历史:“只需使用dev:\ path \ file.ext,我就会决定什么是最佳选择。”
dkeck 2014年

4
问这个微软。我们无法告诉您他们为什么以及如何就此问题做出决定。
magicandre1981

6
是的,我不太在乎他们是如何做到的,但是为什么他们还在迫使我们在2015年尊重MAX_PATH呢?
Ryan Mann

4
260个字符应该足以供任何人使用;)
paulm

8
@AndrewS Explorer尚不支持longpath。他们仍在努力
magicandre1981 16-10-27

6

这是一些有趣的代码,可启用长路径来避免单击@ magicandre1981答案中的所有内容。这已在Windows Server 2016上进行了测试,它也应在Windows 10上运行。

- name: Remove filesystem path length limitations
  win_regedit:
    path: HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem
    name: LongPathsEnabled
    type: dword
    data: 1
    state: present

支持ansible。谢谢!
semtex41

1

是的,它仍然存在。只是现在遇到了一个问题,将网络驱动器映射到它以缩短路径的通常方法似乎并不能让我打开文件,但可以让我重命名并移动它们。


1
subst是您的朋友
evandrix
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.