当我在文件夹之间移动文档时,我收到“文件名对于目标文件夹来说太长。您可以缩短文件名并重试,或者尝试路径更短的位置”的错误。我知道有办法禁用该文件路径长度限制,但这些方法在我的笔记本电脑上不起作用。
https://www.howtogeek.com/266621/how-to-make-windows-10-accept-file-paths-over-260-characters/提供了两种解决方案来摆脱限制,第二种解决方案是使用组策略 (dpedit.msc)。由于我使用的是 Windows 10 家庭版,所以第二种解决方案不起作用。我尝试按照此处的说明安装 dpedit.msc (Windows Starter Edition、Home 和 Home Premium 不包含 gpedit,如何安装它?),但不知为何它没有像演示的那样工作——我下载了那个压缩文件夹并运行了提取的setup.exe文件。然而,执行之后,我尝试通过RUN以及START菜单搜索框访问gpedit.msc命令,但我的笔记本电脑无法找到gpedit.msc。
所以我尝试了第一个解决方案。我查找了 regedit,按照所有步骤操作,并将值日期从 0 更改为 1。即使在我注销、重新启动计算机并重新登录后,它仍然不起作用。
这让我很头疼,所以如果有人能解释一下导致上述问题的原因以及如何摆脱文件路径限制,我将不胜感激。
PS:我是一名技术业余爱好者,因此任何用外行人能理解的指导或解释都会很有帮助,谢谢!
答案1
好的。
部分问题出在 thinkGeek 文章上。措辞中提到了文件路径,但错误的屏幕截图重点是文件名,昨晚我让这件事扰乱了我的思路。
@McDonald:您在之前的解决方案中建议的注册表编辑在 1703 中不起作用。
但我可以确认 thinkgeek 文章中的注册表编辑确实有效。但 NTFS 对段长度有限制。因此相对文件长度仍然不能超过 260 个字符(这是 thinkgeek 误导的地方)。
我创建了以下 PowerShell 脚本来测试这一点:
$file_name=""
$directory=""
$file_path=""
# create a directory path of 200 characters. Long but legal.
for ($i=0; $i -lt 200; $i++)
{
$directory= $directory + "a"
}
write-host "Creating directory"
new-item $directory -itemType directory -force
# add \ so we can use it as a directory below
$directory = $directory + "\"
# create a file name that is 200 chars. Long but legal.
for ($i=0; $i -lt 200; $i++)
{
$file_name= $file_name + "b"
}
# make the full path. Now this is 401 chars.
$file_path= $directory + $file_name
#dump to screen
write-host "full path's length: " $file_path.length
write-host "Creating file with long path..."
new-item $file_path -itemtype file -force
我运行了注册表编辑前后的两个操作。
答案2
感谢大家的反馈,如果有重复,我深表歉意。我按照说明下载了 OneCommander这里并且成功了。OneCommander 当然无法覆盖/摆脱文件路径限制,但它确实(至少在我的情况下)绕过了它。供您参考,我的是 1607 版,Windows 10 家庭版。