пятница, 14 октября 2022 г.

Удаление файлов с длинными именами или длинным путём к файлу

В ОС Microsoft Windows есть ограничение пути файла который не должен превышать 260 символов.
Хитрость заключается в том, что при формировании пути к файлу учитываются все символы из названий каталогов и имён файлов. Система читает путь к файлу, который вы хотите удалить и если она видит, что путь превышает 260 символов, то выдаёт ошибку и отказывается работать с файлов.
Ни через консоль, ни через графический интерфейс удалить эти файлы вы не сможете.

Есть несколько доступных способов, чтобы удалить такие файлы.
 

Способ №1

При помощи утилиты robocopy.

Проверяете, чтобы у вас на ПК была установлена эта утилита. В командной строке пишете команду

robocopy

И если вы получаете ответ на подобие такого

-------------------------------------------------------------------------------
ROBOCOPY :: Robust File Copy for Windows
-------------------------------------------------------------------------------
 

Начало: 14 октября 2022 г. 10:08:44
Простое использование :: ROBOCOPY источник назначение /MIR
 

Источник :: Исходная папка (диск:\путь или
\\сервер\общий ресурс\путь).
Назначение :: Папка назначения (диск:\путь или
\\сервер\общий ресурс\путь).
/MIR :: Создать зеркало всего дерева папок.

Для получения информации об использовании выполните команду ROBOCOPY /?
 

**** /MIR может не только скопировать файлы, но и УДАЛИТЬ их!

 


 

 Значит утилита robocopy у вас установлена и можно продолжать работу с ней.


Закрываете окно командной строки и запускаете её заново только уже от имени Администратора.

Удаление файлов будет осуществляться при помощи следующей команды

robocopy /MIR e:\delete "e:\backup archive\2019 часть 1"

Путь ко второй папке написан в кавычках, т.к. в названиях папок содержатся пробелы.

Данная команда проведёт сравнение каталогов e:\delete и e:\backup archive\2019 часть 1.
Затем запустит синхронизацию этих каталогов, но, поскольку в нашем случае папка e:\delete пустая, а robocopy синхронизирует папки основываясь на содержимом e:\delete, то в результате  e:\backup archive\2019 часть 1 тоже будет пустой.

Итак: 

e:\delete - пустая папка для синхронизации
e:\backup archive\2019 часть 1 - путь к проблемной папке, которую вам надо удалить.


Способ №2

Второй способ заключается в использовании архиватора. Я использовал 7-zip.
При создании архива, в 7-zip есть функция удаления исходников после завершения архивации.

Запустите 7-zip, выберите проблемную папку, нажмите "Добавить в архив" и установите галку "Удалять файлы после сжатия".

Успехов!

Комментариев нет:

Отправить комментарий