D: 驱动器上的路径长度正常,但是对于同时具有 NTFS 格式的 C: 驱动器来说,路径长度是否太长?

D: 驱动器上的路径长度正常,但是对于同时具有 NTFS 格式的 C: 驱动器来说,路径长度是否太长?

我有一个包含大量文件的文件夹D:\dev\tools\eclipse。为了提高速度,我决定将其移动到我的C:驱动器(在同一路径),因为它C:是 SSD。

拖放操作拒绝复制 4 个具有超长名称的文件,因为名称太长。

  • 操作系统是 Windows 7 Pro X64
  • C:是 250GB SSD
  • D:位于 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 问题:

相关内容