Windows路径字符长度限制问题

编程知识 更新时间:2023-04-12 13:47:47

微软官网说明:

最大路径长度限制

在版本 1607 之前Windows版本中Windows 10,路径的最大长度为 MAX _ PATH, 定义为 260 个字符。 在更高版本的 Windows中,更改注册表项或组策略工具才能删除限制。 有关 完整详细信息,请参阅最大路径 长度限制。

在 Windows API ((以下段落) 中讨论的一些例外情况)中,路径的最大长度为 MAX _ PATH, 定义为 260 个字符。 按以下顺序构造本地路径:驱动器号、冒号、反杠、用反杠分隔的名称组件和终止 null 字符。 例如,驱动器 D 上的最大路径为"D:某些 \ 256 个字符的路径字符串 < > NUL",其中 < "NUL"表示当前系统代码页的不可见终止 > null 字符。 (此处 < > 字符集,用于视觉清晰,不能是有效路径字符串的一)

例如,如果要将具有长文件名的 git 存储库克隆到本身具有长名称的文件夹,则可能会达到此限制。

网上搜索了很多解决方法,比如 如何使Windows 10接受超过260个字符的文件路径,均以失败告终,嗐~~~

今天突然来灵感了,解决方法如下图:

 

完美!!!

================================================

官网解决方案:

在版本 1607 Windows 10中启用长路径

从 Windows 10版本 1607 开始,已从常见的 Win32 文件和目录函数中删除 MAX _ PATH 限制。 但是,必须选择加入新行为。

若要启用新的长路径行为,必须同时满足以下两个条件:

  • 注册表项 Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem\LongPathsEnabled (Type: REG_DWORD) 必须存在,并且必须设置为 1。 第一次调用受影响的 Win32 文件或目录函数后) 每个进程的系统 (将缓存密钥的值 (请参阅下面的函数) 。 在进程的生存期内,不会重新加载注册表项。 为了使系统上的所有应用能够识别密钥的值,可能需要重新启动,因为某些进程可能在设置密钥之前启动。
  • 应用程序清单还必须包含 longPathAware 元素。

1 注册表

还可以将此代码复制到可进行此设置的文件,或使用具有提升权限的终端窗口中的 .reg PowerShell 命令:

# CMD
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem]
"LongPathsEnabled"=dword:00000001


# PowerShell
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem" `
-Name "LongPathsEnabled" -Value 1 -PropertyType DWORD -Force

此注册表项也可通过 中的 组策略控制 Computer Configuration > Administrative Templates > System > Filesystem > Enable Win32 long paths 。

2 应用程序清单

<application xmlns="urn:schemas-microsoft-com:asm.v3">
    <windowsSettings xmlns:ws2="http://schemas.microsoft/SMI/2016/WindowsSettings">
        <ws2:longPathAware>true</ws2:longPathAware>
    </windowsSettings>
</application>

如果选择加入长路径行为,则这些目录管理功能将不再具有 MAX _ PATH 限制:CreateDirectoryW、CreateDirectoryExW GetCurrentDirectoryW RemoveDirectoryW SetCurrentDirectoryW。

如果选择加入长路径行为,则这些文件管理功能将不再具有 MAX _ PATH 限制:CopyFileW、CopyFile2、CopyFileExW、CreateFileW、CreateFile2、CreateHardLinkW、CreateSymb一LinkW、DeleteFileW、FindFirstFileW、FindFirstFileExW、FindNextFileW、GetFileAttributesW、 GetFileAttributesExW、SetFileAttributesW、GetFullPathNameW、GetLongPathNameW、MoveFileW、MoveFileExW、MoveFileWithProgressW、ReplaceFileW、SearchPathW、FindFirstFileNameW、FindNextFileNameW、FindFirstStreamW、FindNextStreamW、GetCompressedFileSizeW、GetFinalPathNameByHandleW。

更多推荐

Windows路径字符长度限制问题

本文发布于:2023-04-10 21:24:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/7de674119f411cc51a2bc8997cffd38e.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:路径   长度   字符   Windows

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 66130文章数
  • 14阅读数
  • 0评论数