我有一个包含大量文件的文件夹D:\dev\tools\eclipse
。为了提高速度,我决定将其移动到我的C:
驱动器(在同一路径),因为它C:
是 SSD。
拖放操作拒绝复制 4 个具有超长名称的文件,因为名称太长。
- 操作系统是 Windows 7 Pro X64
C:
是 250GB SSDD:
位于 LSI 9260 硬件 RAID 卡上,其中有 3 个 2TB 驱动器配置为 RAID-5(有效容量为 3.6 TB)C:
和均D:
格式化为 NTFS。
为什么相同的路径长度在 RAID 驱动器上可以接受,但在 SSD 上却不可以?
附加信息:
如果我在文件上使用“复制为路径”上下文菜单项(Shift-右键单击),它D:
会复制一个路径,该路径有 8.3 个短名称替换长度超过 8 个字符的路径元素,而它C:
使用全名。
但是,fsutil
显示两个驱动器均已启用 8.3 名称
C:\Windows\system32>fsutil 8dot3name query c:
The volume state for Disable8dot3 is 0 (8dot3 name creation is enabled).
The registry state of NtfsDisable8dot3NameCreation is 2, the default (Volume level setting).
Based on the above two settings, 8dot3 name creation is enabled on c:.
C:\Windows\system32>fsutil 8dot3name query d:
The volume state for Disable8dot3 is 0 (8dot3 name creation is enabled).
The registry state of NtfsDisable8dot3NameCreation is 2, the default (Volume level setting).
Based on the above two settings, 8dot3 name creation is enabled on d:.
它们的配置相同,所以仍然存在一个问题:为什么 Windows 在一个中使用 8.3 名称,而在另一个中使用 8.3 名称。
答案1
NTFS本身的最大文件路径长度为32,767个字符/字节。
它是具有 260 个字符限制的 Windows API(路径为 256 个字符,加上驱动器号、冒号、斜杠和尾随的 EOL/NUL 的 4 个字符),因此,您(最有可能)用来复制文件的系统实用程序的长度就是这个长度,这就是失败的原因。
有关如何在 Windows 中成功复制长文件路径的建议,请查看此现有的 SU 问题: