Слишком длинный путь к источнику

Обновлено Обновлено: Опубликовано Опубликовано:

Описание

При попытке удалить или переместить файл, появляется ошибка:

Слишком длинный путь к источнику.
Файловая система не поддерживает такие длинные имена исходных файлов. Попробуйте перенести файл в папку с меньшей длинной пути или укажите более короткое имя файла и повторите попытку.

Причина

По умолчанию, операционная система 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) и переходим по пути HKLM\SYSTEM\CurrentControlSet\Control\FileSystem. Находим или создаем ключ LongPathsEnabled с типом REG_DWORD и задаем ему значение 1.

Это же действие из командной строки:

reg delete "HKLM\SYSTEM\CurrentControlSet\Control\FileSystem" /v LongPathsEnabled /f

reg add "HKLM\SYSTEM\CurrentControlSet\Control\FileSystem" /v LongPathsEnabled /t REG_DWORD /d 1

* первая команда, на всякий случай, удалит старый параметр (если его нет, команда вернет ошибку). Вторая — создаст нужный нам ключ.

Способ 3. Far Manager

Устанавливаем программу Far Manager — переходим в нужный каталог и выполняем нужные действия над файлами.

Иногда, данный способ работает только после того, как мы включили поддержку длинных имен (способ 2).

Способ 4. Укорачиваем сетевой путь

Настраиваем сетевой доступ к папке и подключаем ее как сетевой диск. Путь станет меньше.

Например, это можно сделать командой:

net use J: \\server\share /persistent:yes

* данной командой мы создадим диск J, который будет вести на сетевую папку \\server\share.

Способ 5. Используем командную строку

Если нам нужно скопировать или перенести небольшое количество файлов, мы можем воспользоваться командной строкой. Для копирования используем xcopy, для переноса — move.

Примеры использования:

xcopy <длинный путь до файла> <короткий путь>

move <длинный путь до файла> <короткий путь>

В чем была проблема?

Если вам удалось решить проблему, поделитесь своим опытом для других. Что помогло:

* в процентах показаны результаты ответов других посетителей.

54.6%
26.9%
12.6%
3.4%
1.7%
0.8%

# Windows
Дмитрий Моск — частный мастер
Помогла ли вам эта статья?

Да            Нет