我的笔记本电脑坏了之后,我用 eBay 上的废料组装了一台新电脑。我开始将文件从旧硬盘(Windows XP 到 Windows 10)传输到 Windows 10,但遇到了一个问题,我无法移动或删除一些旧文件。我收到一条错误消息,提示文件名太长。
首先我尝试重命名文件。
结果:出于某种原因,文件无法重命名。我检查了一下,它们不是只读的……真是个奇怪的谜。
我研究了这个论坛并将 Windows 改为接受长文件路径。
结果:虽然文件路径过长是导致问题的一个因素,但真正的问题在于文件本身的名称。我仍然无法移动或删除这些文件。
必须有一些允许长文件名的旧设置(例如:royalty-free-photograph-of-student-chemistry-biology-bottle-science-BGBB5A)
问题是:Windows 10 中是否有允许我使用这些文件的旧设置?
答案1
你应该能够使用旧的 8.3 文件名来操作它们,可从 CMD 获取。例如,dir /
在 root 下输入,您应该会看到以下内容。
例如,您可以PROGRA~2
对 ( 的同义词)执行复制或删除等操作。Program Files (x86)
您还可以使用通配符,这在文件名包含非法字符时特别有用。
尽管如此,问题往往在于路径过长即驱动器 + 完整文件路径 + 文件名长度超过 260 个字符。您可以通过以下方式让 Windows 10 处理更长的路径:设置注册表值LongPathsEnabled
进入或返回HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
以恢复行为。1
0
- 按下Windows,输入
rege
并选择注册表编辑器。 - 接受 UAC 提示。
- 在位置栏中输入
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
(从这里复制并粘贴以方便使用)并按Enter。 LongPathsEnabled
如果右侧窗格中未显示该值,请右键单击、选择New>
New DWORD (32-bit) Value
,然后复制上面的值名称。- 双击该值并将其设置为
1
。
答案2
我的解决方法(Windows 10)是 1)在 Windows 中启用长文件路径和 2)使用 WSL2 bash 命令cp -R
进行实际复制。 (我不确定步骤 1)是否必要,但这种组合对我来说是有效的)。