У меня есть папка с большим количеством файлов на D:\dev\tools\eclipse
. Я решил переместить ее на свой C:
диск (по тому же пути) для скорости, так как C:
это SSD.
Функция перетаскивания отказывается копировать 4 файла с очень длинными именами, ссылаясь на то, что они слишком длинные.
- Операционная система — Windows 7 Pro X64.
C:
это SSD на 250 ГБD:
находится на аппаратной RAID-карте LSI 9260 с 3 дисками по 2 ТБ, сконфигурированными как RAID-5 (эффективная емкость 3,6 ТБ)- Оба
C:
отформатированыD:
в NTFS.
Почему одинаковая длина пути допустима на RAID-диске, но не на SSD?
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:
Если я использую пункт контекстного меню «Копировать как путь» (Shift-щелчок правой кнопкой мыши) для файла, он D:
копирует путь, в котором элементы пути длиной более 8 символов заменяются короткими именами 8.3, тогда как в 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 символов/байт.
ЕгоAPI Windows, имеющий ограничение в 260 символов(256 символов для пути, плюс 4 символа для буквы диска, двоеточие, косая черта и завершающий EOL/NUL), и поэтому системная утилита, которую вы (скорее всего) используете для копирования файлов, использует именно эту длину, и именно это дает сбой.
Для получения рекомендаций о том, как успешно скопировать длинный путь к файлу в Windows, ознакомьтесь с этим существующим вопросом SU: