Как удалить файл в Windows с слишком длинным именем? дубликат

На одном из проектов довелось мне использовать модуль для Drupal — clientside validation. И не то чтобы модуль плохой, наоборот полностью выполняет свой функционал, а именно проверяет форму на стороне клиента. Но файлы модуля имеют довольно длинные названия, и вот из-за одного из таких файлов, наш git перестал работать адекватно. Поскольку записать информацию в эту папку уже не мог по причине следующей ошибки:

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

Сразу хочу объяснить, почему появляется такое системное предупреждение и не удаётся произвести с файлом (папкой) элементарные действия копирования или удаления…

В самом уведомлении написан ответ на этот вопрос — файловая система Windows не поддерживает (не понимает) имена исходных файлов длиннее 255 символов.

Но имя файла или папки у Вас короткое, например, «Фото из отпуска»? Дело в том, что «глупая» система воспринимает весь путь к файлу как его имя. Если Ваш файл или папка лежат где-то слишком глубоко в файловом менеджере, то его имя для неё будет выглядеть примерно так…

Вот и собираются символы имени в банду из более 255 штук.

Как удалить неудаляемый файл или папку в таком случае? Очень просто — нужно сократить имя файла (пути) методом переименования вложенных друг в друга папок.

Исправляем проблему «Не удалось найти этот элемент»

Далее по порядку различные способы удалить то, что не удаляется с сообщением о том, что элемент не найден.

Каждый из способов по отдельности может сработать, но какой именно сработает в вашем случае заранее сказать нельзя, а потому начну с самых простых методов удаления (первые 2), а продолжу более хитрыми.

  1. Откройте папку (расположение элемента, который не удаляется) в проводнике Windows и нажмите клавишу F5 на клавиатуре (обновление содержимого) — иногда уже этого достаточно, файл или папка просто пропадет, так как действительно отсутствует в этом расположении.
  2. Перезагрузите компьютер (при этом выполните именно перезагрузку, а не завершение работы и включение), а затем проверьте — не исчез ли удаляемый элемент.
  3. Если у вас есть свободная флешка или карта памяти, попробуйте перенести тот элемент, который «не найден» на неё (перенос можно осуществить в проводнике перетягиванием мышью с удержанием кнопки Shift). Иногда это срабатывает: файл или папка исчезает в том расположении, в котором располагались и появляется на флешке, которую затем можно отформатировать (при этом с неё исчезнут все данные).
  4. С помощью любого архиватора (WinRAR, 7-Zip и т.д.), добавьте этот файл в архив, при этом в опциях архивирования отметьте «Удалять файлы после сжатия». В свою очередь сам созданный архив удалится без проблем. 
  5. Аналогично, часто не удаляемые файлы и папки легко удаляются в бесплатном архиваторе 7-Zip (он может работать и как простой файловый менеджер, но по какой-то причине у него получается удаление таких элементов. 

Как правило, один из 5 описанных способов помогает и использовать программы наподобие Unlocker (которая в рассматриваемой ситуации не всегда эффективна) не приходится. Однако, иногда проблема сохраняется.

Дополнительные методы удалить файл или папку при ошибке

Если ни один из предложенных способов удаления не помог и сообщение «Элемент не найден» продолжает появляться, попробуйте такие варианты:

  • По аналогии с последним методом, попробуйте удаление после архивации в Total Commander.
  • Выполните проверку жесткого диска или другого накопителя, на котором расположен этот файл/папка на ошибки (см. Как проверить жесткий диск на ошибки, инструкция подойдет и для флешки) — иногда проблема бывает вызвана ошибками файловой системы, которые встроенная проверка Windows может исправить.
  • Ознакомьтесь с дополнительными способами: Как удалить папку или файл, который не удаляется.

Надеюсь, один из вариантов оказался работоспособным в вашей ситуации и ненужное было удалено.

в Телеграм

А вдруг и это будет интересно:

  • Как настроить экран блокировки Windows 10 — изменить обои, добавить приложения, отключить подсказки Майкрософт
  • Пропал звук в браузере в Windows 10 — как исправить?
  • Ошибка AppCrash модуля — как исправить?
  • Медленно работает SSD — причины и возможные решения
  • Как включить подсветку на клавиатуре ноутбука

Как удалить файл в Windows с слишком длинным именем? [дубликат]

этот вопрос уже есть ответ здесь:

У моей жены есть несколько файлов и папок, которые каким-то образом оказались с именами файлов, которые заставили их быть неустранимыми (не могут быть удалены) обычными средствами или через командную строку. Я верю имена файлов слишком длинные из-за глубины структуры папок. Кто-нибудь знает хорошие утилиты для очистки файлов, как это?

Читайте также:  Как откатить драйвер если кнопка не активна

Если вы хотите полностью удалить каталог и в нем есть файл с длинными именами, robocopy делает очень хорошую работу:

это работает, потому что robocopy внутренне использует Юникод версии функции Win32, с ? префикс для путей к файлам; эти функции имеют предел 21⁶-1 (32,767) символы вместо 259.

возможно, Вам придется пройти через этот процесс несколько раз, чтобы избавиться от всех файлов.

из командной строки:

это будет список ваших файлов / папок в кратком формате имени. Затем используйте короткое имя точно так, как написано, чтобы удалить файл:

Я progressivley прокладываю себе путь в путь, переименовывая каждую последующую родительскую папку в » 1 » и пытаясь удалить. Вы эффективно сокращаете путь каждый раз, и мне никогда не приходилось работать более чем на 4 или 5 каталогов, пока я, наконец, не смогу удалить всю структуру каталогов (что может быть или не быть тем, что вы хотите). Вы можете сделать это из последней дочерней папки, а также и работать ваш путь вверх или вниз.

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

трюк, который я использовал, чтобы обойти ограничение длины «полный путь и имя файла», чтобы переместить, скопировать или удалить что-то, чтобы сократить его, «взломав» на полпути (или больше) С помощью буквы сопоставленного диска, указывающей на папку путь вниз по пути.

Итак, у вас есть c:somelongpath. txt.

затем сопоставьте произвольную букву диска где-нибудь вдоль пути, чтобы первый кусок пути стал только a несколько символов. Предварительное условие-папка должна быть в общей папке (которая уже может быть, если она находится на сервере, где я должен был это сделать), а если ее еще нет, выберите папку где-то в пути и поделитесь ею. В зависимости от среды и уровня паранойи разрешите всем пользователям изменять доступ к общему ресурсу, если разрешения NTFS являются достаточно строгими. Если вы хотите, просто разрешите изменять права только для вашей учетной записи.

теперь переходим к общему папку или внутри его и поделиться им, или использовать командную строку следующим образом. Предположим, у вас общая папка » foo » как «fooshare», то вы могли бы сделать

и диск X: теперь указывает непосредственно на папку «папки» внутри этой папки, так что «x: » теперь довольно короткий.

(«/persistent: no » означает, что это не переживет следующую перезагрузку и запутает вас позже. Не забудьте удалить папку, когда закончите.)

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

Я должен был использовать эту технику и проводим программы между двумя серверами, когда мы поняли, что пользователи подключенные диски достаточно глубоко в структуре папок, чтобы они были в состоянии использовать не более 255 символов, но что превысил общая длина пути к файлу при доступе из корня локального диска.

Оператор Kill

Описание

Kill – это оператор, предназначенный для удаления файлов с диска.

Синтаксис

  • 1 Kill PathName
    • PathName – это строковое выражение, задающее одно или несколько имен файлов (по шаблону), которые требуется удалить.

    Строка PathName может содержать каталоги (папки) и букву диска. Если файл с именем PathName не существует, будет сгенерирована ошибка.

    Оператор Kill поддерживает использование знаков подстановки в последнем компоненте параметра PathName (собственное имя файла без пути к нему):

    • Звездочка (*) – заменяет любое количество символов или ни одного.
    • Вопросительный знак (?) – заменяет один символ или ни одного.

    Знаки подстановки позволяют создать шаблон, по которому можно удалить сразу несколько файлов.

    Примеры

    Пример 1 Удаление одного файла без проверки его существования:

    1234 Sub Primer1() On Error Resume Next Kill ThisWorkbook.Path & «\»End Sub

    Инструкция On Error Resume Next нужна для того, чтобы корректно завершить программу в том случае, если файла с именем PathName не существует.

    Пример 2 Удаление одного файла с проверкой его существования:

    12345 Sub Primer2()Dim myPathName As String myPathName = «C:\Новая папка\» If Dir(myPathName) <> «» Then Kill myPathNameEnd Sub

    Пример 3 Удаление нескольких файлов по шаблону:

    1234 Sub Primer3() On Error Resume Next Kill «C:\Новая папка\Справка*»End Sub

    В результате работы этого кода VBA Excel будут удалены все файлы с любыми расширениями, которые начинаются со слова «Справка». Если строку Kill «C:\Новая папка\Справка*» заменить строкой Kill «C:\Новая папка\*2020*», она удалит все файлы, в имени которых есть подстрока «2020».

  • Удаление всей директории со всеми вложенными файлами и директориями командой rm

    В повседневной работе гораздо чаще приходится удалять не пустые директории, и тут на на помощь приходит команда rm. К примеру, удалить все содержимое директории letters можно командой (Осторожно! удаление без подтверждения):

    Читайте также:  Такая важная и спорная – всё о кнопке Caps Lock

    $ rm-rf letters/

    Где,

    • -r – указывает что нужно производить удаление рекурсивно, т.е. пройтись по всему списку файлов и папок и попытаться удалить каждую из них.
    • -f — удаление без запроса его подтверждения.

    Как убрать ограничение в символов в Windows Home Edition

    Шаг 1 Откройте редактор реестра из команды «Выполнить», введя термин:

    + R

    смерзаться

    Шаг 2 Мы увидим окно реестра Windows. Пока мы будем входить в следующий маршрут. Там мы ищем значение "LongPathsEnabled".

    HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ FileSystem

    примечание

    В случае отсутствия этого значения мы должны щелкнуть правой кнопкой мыши на FileSystem, выбрать опцию New и выбрать опцию DWORD Value (32 бита). Введите термин LongPathsEnabled в открывшемся окне и примите.

    Шаг 3 Дважды щелкните «LongPathsEnabled» или щелкните правой кнопкой мыши / «Свойства», и появится следующее окно, где мы должны в поле «Информация о значении» изменить значение от 0 до 1 и нажать ОК.

    Мы перезапускаем систему или закрываем наш сеанс, чтобы применить изменения. В случае отмены этой задачи мы должны снова установить значение LongPathsEnabled на ноль 0.

    Файл подкачки

    Подставы со стороны операционной системы на одном только файле с эскизами не заканчиваются. По мере работы с документом информация о нем попадает в различные части ОС — временную папку, реестр и так далее. Поэтому очень трудно отследить и удалить все связанные с файлом данные. Вдобавок ко всему, есть места, где копия файла может оказаться совершенно случайно (иногда такая случайность может стоить очень дорого). Я говорю о файле подкачки () и свопе памяти, используемом во время режима Hibernation (). Предсказать содержимое файла подкачки заведомо невозможно, и тут никто ничего не может гарантировать. Предлагаю еще на одном эксперименте убедиться в том, что это — опасное место.

    Поскольку просмотреть или скопировать файл подкачки операционная система просто так не дает, то у нас есть два варианта: задействовать специальные утилиты или же загрузиться в другую операционку и получить доступ к файлу из нее. Мне второй способ показался более простым, так как под рукой был Back Track, начиненный различными утилитами, в том числе и для восстановления файлов. Поэтому, загрузившись с LiveCD, я смонтировал виндовый раздел и пошел в раздел «BackTrack->Forensic», откуда запустил утилиту Foremost. Эта замечательная консольная прога умеет восстанавливать файлы исходя из их заголовков и внутренней структуры. Необходимо лишь передать имя входного файла, в котором будет осуществляться поиск, и указать директорию, куда будут сохранены все найденные данные:

    #foremost -i /mnt/hda1/ -o /root/Desktop/page_file -v -q

    В качестве входного файла я указал файл подкачки /mnt/hda1/, а директорию для сохранения результатов — /root/Desktop/page_file. Программа начала свою работу. За короткое время Foremost сумел найти и извлечь 524 файла.

    Статистика извлеченных файлов: jpg:= 73 gif:= 4 gif:= 19 jpg:= 77 jpg:= 95 doc:= 1 pgp:= 65 pgp:= 62 pgp:= 44 pgp:= 36 dat:= 7 lnk:= 3 cookie:= 38

    Что тут можно сделать? Есть несколько вариантов. Первый — отключить вообще файл подкачки. Для этого надо зайти в «Control Panel-> System and Security-> System-> Advanced System Settings-> Performance-> Advanced-> Virtual Memory-> Change» и выбрать опцию «No paging file». Второй вариант — заставить операционную систему затирать все данные в файле подкачки перед выключением компьютера. Такой режим активируется, если установить для ключа ClearPageFileAtShutdown в разделе HKEY_LOCAL_MACHINESYSTEMCurrentControlSet ControlSession ManagerMemory Management значение «1». К сожалению, второй метод очень медленный, и выключение системы будет занимать достаточно длительное время, так что применять его на практике или нет — решай сам. Аналогичная ситуация и с файлом Его также можно попросту отключить, что сэкономит дополнительное место на диске.

    Кстати, исследовать файл подкачки можно и под виндой. Но так как операционная система не дает его просмотреть и скопировать с помощью штатных средств, нам понадобится программка FTK Imager. Переходим в раздел «File-> Add Evidence Item» и указываем диск, где находится файл подкачки. На панели слева отобразится дерево каталогов, где необходимо выбрать и воспользоваться функцией экспорта через контекстное меню. Файл подкачки без проблем скопируется в указанную нами папку, и никакие блокировки системы с этого момента не помешают его анализировать. Для анализа, кстати, можно воспользоваться DiskDigger или PhotoRec. Первая — проще, но вторая умеет восстанавливать более широкий круг различных форматов файлов.

    Что делать, если слишком длинный путь к источнику, как удалить такой файл?

    При наличии файла, который не удаляется из-за длинного имени, решить проблему можно несколькими вариантами. Например, файл вложен в несколько каталогов, допустим, пять или даже десять папок, которые имеют названия по 10-20 знаков, то это и может быть причиной не удаления файла. Дело в том, что Windows не поддерживает любые файлы, в названиях которых больше 260 символов. Если этот предел превышен, то появится ошибка, которую я показал выше. Количество папок, имеющие свои названия и само имя файла в сумме должны давать менее 260 символов. В системе также есть одна особенность – при превышении этого ограничения мы всё-таки можем переименовывать папки. А это значит, что необходимо переименовать все папки на короткое имя, например, буква или цифра.

    Читайте также:  Ваши файлы были зашифрованы — что делать?

    Такая проблема может появиться не только из-за того, что вы дали такое длинное название. У меня это произошло тогда, когда я решил загрузить себе файлы сайты с сервера и кое-что сделать. Так как файлы уже были не нужны, я удалил весь каталог с файлами сайта, но как оказалось он содержал файл с очень длинным именем, плюс названия папок и это не дало мне всё это удалить.

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

    Что делать, если слишком длинный путь к источнику, как удалить такой файл?

    Открываем командную строку. Для этого нажимаем сочетание Win+R и вводим команду cmd . Можно нажать правой кнопкой мыши по меню Пуск (Либо сочетание клавиш Win+X) и выбрать там командную строку.

    Теперь вы пишите такую команду, которая сделает для нас виртуальный диск:

    Нужно выбрать такую букву диска, которая не занята другими. Системный раздел обычно указывается буков C, а второй раздел, как D или E, тогда выбираем любую другую.

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

    У меня эта команда выглядит следующим образом:

    Когда мы зайдем в Мой компьютер, то там вы должны увидеть диск, с той буквой, которую мы ей присвоили из командной строки. Таким образом, путь к файлу сократиться практически в два раза, а это значит, что общая длинна символов может составлять менее 260 знаков. Теперь вы можете попробовать избавиться от неудаляемого.

    Что делать, если слишком длинный путь к источнику, как удалить такой файл?

    Для того, чтобы виртуальный диск удалить нужно ввести команду:

    subst БукваДиска /d

    Что делать, если слишком длинный путь к источнику, как удалить такой файл?

    При наличии файла, который не удаляется из-за длинного имени, решить проблему можно несколькими вариантами. Например, файл вложен в несколько каталогов, допустим, пять или даже десять папок, которые имеют названия по 10-20 знаков, то это и может быть причиной не удаления файла. Дело в том, что Windows не поддерживает любые файлы, в названиях которых больше 260 символов. Если этот предел превышен, то появится ошибка, которую я показал выше. Количество папок, имеющие свои названия и само имя файла в сумме должны давать менее 260 символов. В системе также есть одна особенность – при превышении этого ограничения мы всё-таки можем переименовывать папки. А это значит, что необходимо переименовать все папки на короткое имя, например, буква или цифра.

    Такая проблема может появиться не только из-за того, что вы дали такое длинное название. У меня это произошло тогда, когда я решил загрузить себе файлы сайты с сервера и кое-что сделать. Так как файлы уже были не нужны, я удалил весь каталог с файлами сайта, но как оказалось он содержал файл с очень длинным именем, плюс названия папок и это не дало мне всё это удалить.

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

    Что делать, если слишком длинный путь к источнику, как удалить такой файл?

    Открываем командную строку. Для этого нажимаем сочетание Win+R и вводим команду cmd . Можно нажать правой кнопкой мыши по меню Пуск (Либо сочетание клавиш Win+X) и выбрать там командную строку.

    Теперь вы пишите такую команду, которая сделает для нас виртуальный диск:

    Нужно выбрать такую букву диска, которая не занята другими. Системный раздел обычно указывается буков C, а второй раздел, как D или E, тогда выбираем любую другую.

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

    У меня эта команда выглядит следующим образом:

    Когда мы зайдем в Мой компьютер, то там вы должны увидеть диск, с той буквой, которую мы ей присвоили из командной строки. Таким образом, путь к файлу сократиться практически в два раза, а это значит, что общая длинна символов может составлять менее 260 знаков. Теперь вы можете попробовать избавиться от неудаляемого.

    Что делать, если слишком длинный путь к источнику, как удалить такой файл?

    Для того, чтобы виртуальный диск удалить нужно ввести команду:

    subst БукваДиска /d