我有一個包含大量文件的資料夾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 名稱,而在另一個中則不使用。
答案1
NTFS 本身的最大檔案路徑長度為 32,767 個字元/位元組。
它是Windows API 的字元數限制為 260 個(路徑為 256 個字符,加上驅動器號、冒號、斜杠和尾隨 EOL/NUL 的 4 個字符),因此您(最有可能)用來複製文件的系統實用程序採用該長度,這就是失敗。
有關如何在 Windows 中成功複製長檔案路徑的建議,請查看以下現有的 SU 問題: