路径长度在 D: 驱动器上正常,但对于具有 NTFS 的 C: 驱动器来说太长?

Ex *_*ris 2 windows-7 path

我有一个包含大量文件的文件夹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:.
Run Code Online (Sandbox Code Playgroud)

它们的配置相同,因此仍然存在一个问题:为什么 Windows 在其中一个中使用 8.3 名称,而在另一个中则不使用。

Ƭᴇc*_*007 5

NTFS 本身的最大文件路径长度为 32,767 个字符/字节。

Windows API 具有 260 个字符的限制(路径为 256 个字符,加上驱动器号、冒号、斜杠和尾随 EOL/NUL 的 4 个字符),因此您(最有可能)使用系统实用程序来复制文件达到了这个长度,这就是失败的原因。

有关如何在 Windows 中成功复制长文件路径的建议,请查看以下现有的 SU 问题:

  • 不一定是 Explorer 本身,只是它用于文件工作的 Windows API 的一部分。:) (2认同)