Перейти к основному содержанию

Windows — удалить файл с длинным именем

Windows

Если полный путь к файлу превышает 254 символа, то удалить его обычным способом не получится. Система предложит переместить файл в другую директорию, путь к которой будет короче.

win

Однако при попытке переместить файл мы столкнёмся с той же проблемой. Windows не может переместить файл, потому что путь к нему слишком длинный.

win

Можно попробовать удалить файл с помощью Total Commander, там полный путь может достигать 259 символов, однако, в моём случае проблема оказалась слишком сильна, полный путь к файлу превысил и это значение.

win

Можно установить 7-Zip, и запаковать файл в путь покороче, установив опцию "удалять исходник после архивации". Архиватор умеет работать с такими длинными названиями

Ещё один способ, воспользоваться встроенной утилитой subst для создания виртуального диска, тем самым сократив полный путь к файлу. который нужно удалить.

win

Утилитой пользоваться в командной строке просто, достаточно указать два аргумента: имя диска и путь к папке с неудаляемым файлом. Выполняю:

subst Z: "B:\web\daily\web\drupal8\sites\internet-lab.ru\files\photo"

win

Весь этот длинный путь к директории с файлом сократился до одного диска Z.

win

Теперь ненужные файлы можно просто удалить с диска Z. ?

Виртуальный диск удаляется командой:

subst Z: /d

win

Добавка 1

В проводнике Windows 10 можно включить поддержку длинных путей:

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

После перезагрузки проводник должен обрести суперспособность удалять файлы с длинными путями.

Добавка 2

Можно попытаться удалить файл в пространстве имён файлов Win32:

del "\\?\C:\long-path\file.xxx"

Добавка 3

​Утилита  robocopy умеет работать с длинными путями:

mkdir dir_for_del
robocopy dir_for_del long_path_file_dir /MIR
rmdir dir_for_del
rmdir long_path_file_dir

Теги

 

Похожие материалы

Windows — определить каким процессом занят порт

Определяем каким процессом занят порт. Делать это будем на Windows Server 2012 R2, но инструкция подходит и для других версий Windows. Для начала определим PID процесса

Теги

xcopy — ошибка "Insufficient memory"

Иногда при копировании с помощью xcopy вы можете натолкнуться на ошибку "Insufficient memory". Я такую ошибку увидел, когда стал разбираться с размером бэкапа сайта. Оказалось, что в какой-то момент времени бэкап сломался из-за этой ошибки.

Теги