Описание
При попытке удалить или переместить файл, появляется ошибка:
Слишком длинный путь к источнику.
Файловая система не поддерживает такие длинные имена исходных файлов. Попробуйте перенести файл в папку с меньшей длинной пути или укажите более короткое имя файла и повторите попытку.
Причина
По умолчанию, операционная система Windows настроена на блокирование действий над файлами в проводнике, путь к которым более 255 символов.
Решение
Способ 1. Уменьшаем путь до файла
Есть несколько способов сократить путь до нужной нам папки.
1. Переименовываем все папки, в которые вложен наш файл, на менее длинные названия. Когда путь сократится, можно выполнить удаление или перемещение.
2. Создаем символьную ссылку на конечный путь. Это можно сделать командой:
mklink /d c:<короткий путь> c:<длинный путь>
… например:
mklink /d «C:Папка0» «C:ПапкаПапка 2Папка 3 Папка 4Папка 5»
* в данном примере перейдя по пути C:Папка0 , мы окажемся в папке C:ПапкаПапка 2Папка 3 Папка 4Папка 5 .
3. Сопоставляем папку букве диска с помощью команды subst:
subst S: «C:ПапкаПапка 2Папка 3 Папка 4Папка 5»
* в данном примере мы создадим диск S , который будет вести нас в папку C:ПапкаПапка 2Папка 3 Папка 4Папка 5 .
Способ 2. Включаем поддержку длинных файлов
Данный способ поддерживается, начиная с Windows 10 / Server 2016.
Ограничение в 255 символов — пережиток прошлого, необходимый для обеспечения совместимости с другими файловыми системами. Система не будет работать хуже, если данное ограничение отключить.
Открываем реестр (команда regedit ) и переходим по пути HKLMSYSTEMCurrentControlSetControlFileSystem . Находим или создаем ключ LongPathsEnabled с типом REG_DWORD и задаем ему значение 1 .
Это же действие из командной строки:
reg delete «HKLMSYSTEMCurrentControlSetControlFileSystem» /v LongPathsEnabled /f
reg add «HKLMSYSTEMCurrentControlSetControlFileSystem» /v LongPathsEnabled /t REG_DWORD /d 1
* первая команда, на всякий случай, удалит старый параметр (если его нет, команда вернет ошибку). Вторая — создаст нужный нам ключ.
Способ 3. Far Manager
Устанавливаем программу Far Manager — переходим в нужный каталог и выполняем нужные действия над файлами.
Иногда, данный способ работает только после того, как мы включили поддержку длинных имен (способ 2).
Способ 4. Укорачиваем сетевой путь
Настраиваем сетевой доступ к папке и подключаем ее как сетевой диск. Путь станет меньше.
Например, это можно сделать командой:
net use J: \servershare /persistent:yes
* данной командой мы создадим диск J , который будет вести на сетевую папку \servershare .
Способ 5. Используем командную строку
Если нам нужно скопировать или перенести небольшое количество файлов, мы можем воспользоваться командной строкой. Для копирования используем xcopy , для переноса — move .
Примеры использования:
xcopy <длинный путь до файла> <короткий путь>
move <длинный путь до файла> <короткий путь>
В чем была проблема?
Если вам удалось решить проблему, поделитесь своим опытом для других. Что помогло:
* в процентах показаны результаты ответов других посетителей.