复制文件夹遇到了这个提示:文件名对目标文件夹可能太长。你可以缩短文件名并重试,或者尝试路径较短的位置。
创建文件夹遇到这个提示:文件名或扩展名太长。
启用长路径支持可能会影响某些应用程序的兼容性,更建议参考操作系统自己的提示:文件名对目标文件夹可能太长。你可以缩短文件名并重试,或者尝试路径较短的位置。
如果必须突破260字符限制,有注册表方法或subst.exe两种方法:最新版win10/win11默认已经突破,无需操作,server2016/2019/2022/2025则需要LongPathsEnabled注册表项置为1;低版本Server系统则只能用subst.exe命令来缩短路径;subst.exe在20多年前就有了,适用所有windows系统,不论pc还是server。
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem" /v LongPathsEnabled /t REG_DWORD /d 1 /f
确认到底开没开,这样看:
reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem" /v LongPathsEnabled
看结果是不是1,是就是开了,不是就是没开
个人验证上述方案在最新版win10、win11上貌似已经开启了,在所有server系统上则没有开启,不论是server2008R2还是server2025。
启用长路径并重启机器后,在explorer里鼠标操作长路径文件夹仍碰到相关限制的提示
需求描述:启用长路径后,不仅需要命令行能正常使用,还需要图形界面右键创建文件夹
问题原因:微软Windows系统设计就是如此
解决办法:mklink或subst命令
mklink示例:
cmd.exe /c mklink "短路径" “长路径” /D
cmd.exe /c mklink "C:\Users\Administrator\Desktop\test" "C:\1xxx\2xxx\3xxx\4xxx\5xxx\6xxx\7xxx\8xxx\9xxx\10xxx\11xxx\12xxx\13xxx\14xxx\15xxx\16xxx\17xxx\18xxx\19xxx\20xxx\21xxx\22xxx\23xxx\25xxx\26xxx\27xxx\28xxx\29xxx\30xxx\31xxx\32xxx\33xxx\34xxx\35xxx\36xxx\37xxx\38xxx\39xxx\40xxx\41xxx\42xxx\43xxx\44xxx\" /D
如果不挪动原本的较长路径,想原路径变短一些,我一般用这个办法
比如用powershell创建一个长路径
mkdir -force C:\1xxx\2xxx\3xxx\4xxx\5xxx\6xxx\7xxx\8xxx\9xxx\10xxx\11xxx\12xxx\13xxx\14xxx\15xxx\16xxx\17xxx\18xxx\19xxx\20xxx\21xxx\22xxx\23xxx\25xxx\26xxx\27xxx\28xxx\29xxx\30xxx\31xxx\32xxx\33xxx\34xxx\35xxx\36xxx\37xxx\38xxx\39xxx\40xxx\41xxx\42xxx\43xxx\
在最后一层再继续创建文件夹,只能创建1个字符的文件夹了
C:\1xxx\2xxx\3xxx\4xxx\5xxx\6xxx\7xxx\8xxx\9xxx\10xxx\11xxx\12xxx\13xxx\14xxx\15xxx\16xxx\17xxx\18xxx\19xxx\20xxx\21xxx\22xxx\23xxx\25xxx\26xxx\27xxx\28xxx\29xxx\30xxx\31xxx\32xxx\33xxx\34xxx\35xxx\36xxx\37xxx\38xxx\39xxx\40xxx\41xxx\42xxx\43xxx\4\
这个路径明明是248个字符为啥触发260个字符限制呢
因为系统根目录C:实际是%systemdrive%,把C:用%systemdrive%替代后则是
%systemdrive%\1xxx\2xxx\3xxx\4xxx\5xxx\6xxx\7xxx\8xxx\9xxx\10xxx\11xxx\12xxx\13xxx\14xxx\15xxx\16xxx\17xxx\18xxx\19xxx\20xxx\21xxx\22xxx\23xxx\25xxx\26xxx\27xxx\28xxx\29xxx\30xxx\31xxx\32xxx\33xxx\34xxx\35xxx\36xxx\37xxx\38xxx\39xxx\40xxx\41xxx\42xxx\43xxx\4\
这个路径确实是260个字符
想把这个260个字符的长路径变短有个subst.exe命令
cmd命令行:注意结尾不要带\,/D删除映射前注意先cd /d C:切换到其他盘符
subst.exe P: "C:\1xxx"
cd /d P:
dir
cd /d C:
subst.exe P: /D
subst.exe Q: "%systemdrive%\1xxx"
cd /d Q:
dir
cd /d C:
subst.exe Q: /D
subst.exe Q: "%systemdrive%\1xxx\2xxx\3xxx\4xxx\5xxx\6xxx\7xxx\8xxx\9xxx\10xxx\11xxx\12xxx\13xxx\14xxx\15xxx\16xxx\17xxx\18xxx\19xxx\20xxx\21xxx\22xxx\23xxx\25xxx\26xxx\27xxx\28xxx\29xxx\30xxx\31xxx\32xxx\33xxx\34xxx\35xxx\36xxx\37xxx\38xxx\39xxx\40xxx\41xxx\42xxx\43xxx"
cd /d Q:
dir
@rem 在Q:\里你可以突破原本限制,如果你不断嵌套缩短路径,260套260可以套好长,但是请注意subst只适合本地磁盘,不适合映射网络挂载盘,虽能映射,但在网络挂载盘有性能问题时,subst会自动多次重试,会一下子拉跨explorer导致整个系统hang
md Q:\
cd /d C:
subst.exe Q: /D
@rem 删掉Q:盘符后,回到最初的路径,你看到了最后新创建的那个文件夹,但是你打不开,当你用subst挂到Q:后,能打开
subst
subst.exe对网络盘有重大弊端,非常不适合挂共享盘比如nfs、smb,对服务器本身的磁盘,则非常适用
https://superuser.com/questions/644684/mapping-drive-letters-to-local-folders/644706#644706
当共享盘稍有unavailable,subst.exe就会疯狂重连,耗死最直接的那个客户端,同时,挂共享盘的所有客户端被牵连,都出现explorer卡顿、甚至僵到白屏的情况,explorer僵的时候,其他程序无响应
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有