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

Если не удаляется файл с длинным именем и появляется ошибка, что файловая система не поддерживает такие длинные имена?

Длинный у нас получился заголовок получился, но он указывает на суть проблемы, которая будет здесь описана. Недавно я столкнулся с не очень хорошей ситуацией. Сортируя файлы на жёстком диске и очищая его от ненужного, я обнаружил, что один из файлов не удаляется, а появляется ошибка следующего содержания: «Файловая система не поддерживает такие длинные имена исходных файлов. Попробуйте перенести файл в папку с меньшей длиной пути или укажите более короткое имя файла и повторите попытку».

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

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

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

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

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

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

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

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

subst буква-диска «путь к файлу или папке – это и будет диском»

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

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

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

subst Z: «C:UsersUserDesktop3333333333333333333333333333333333333333333333333333111»

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

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

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

Используем Total Commander

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

Скачиваем и устанавливаем программу. Идём во вкладку «Файл» щелкаем по разделу «Изменить атрибуты». Появляется окошко, где убираем галки со всех атрибутов. Если вверху не стоит галочка напротив пункта «Обрабатывать содержимое каталогов» – выбираем. Теперь из этой же программы пробуем удалить файл с длинным именем.

Используем архиватор 7-Zip

Для этого дела нам понадобится архиватора 7-Zip. Нажимаем правой кнопкой мыши по начальному каталогу и направляем мышь на раздел «7-Zip» и выбираем пункт «Добавить к архиву».

Появляется окно, в котором вам нужно отметить только одну галочку «Удалять файлы после сжатия». Потом нажимаете ОК.

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

Вот такие способы по исправлению ошибки не удаляемого файла мы рассмотрели. Может быть у вас есть еще варианты, как можно это сделать?

Как удалить длинный путь в windows.

при импорте проекта в eclipse он каким-то образом начал создавать рекурсивные версии каталога.

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

Я не могу удалить его из командной оболочки. Я не могу удалить его из проводника. Я ничего не могу с этим поделать. Я понятия не имею, сколько копий было создано Eclipse. Затмение продолжалось около минуты, прежде чем я понял, что что-то не так, и я отменил операция.

Я могу получить Свойства папки верхнего уровня, и он говорит, что содержит папки 497.

Вопрос 1: Как я могу удалить все это в Windows?

Вопрос 2: о чем, черт возьми, думал eclipse?

19 ответов

У меня были проблемы похожие на эту с Eclipse: пытаюсь импортировать проект с помощью Subclipse, она породила глубоко вложенных каталогов, которые я не мог удалить.

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

@Charlie и @Tomalek решения выглядят, как они могут быть более элегантными. Я не планирую повторять этот опыт, чтобы узнать.

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

следуйте этим инструкциям, чтобы удалить его.

  1. создайте пустую папку, например C:UsersNameDesktoptemp .
  2. откройте окно командной строки.
  3. тип robocopy C:UsersNameDesktoptemp D:BackupFolder /purge
Читайте также  Вздулась батарея на телефоне что делать?

Примечание: Если есть пробелы в пути на Шаге 3, то путь должен быть заключен в кавычки.

7Zip-это окончательное решение, если вам не нравится командная строка.

  1. открыть файловый менеджер 7Zip
  2. Выберите файл
  3. Shift-удалить файл

Что касается Q1)

используйте subst для короткого cirquit пути:

Что касается Q2)

длинные пути меньше проблем в других ОС, и есть функции Windows API, которые can иметь дело с путями длиннее 255 символов, поэтому они просто сделали это, я думаю.

Если вам нужно иметь дело с путями дольше, чем MAX_PATH , вам придется использовать Unicode версии API файлов Windows (например, DeleteFileW ) и использовать \? префикс. Вы можете написать короткую программу, используя эти API, чтобы перечислить эти каталоги и удалить их.

исправление просто и бесплатно! Нет необходимости переименовывать папки вообще.

используйте команду rm -f -r и подождите несколько минут.

У меня была папка размером 1,5 ГБ с многочисленными внутренними папки и все заработало!

Я столкнулся с той же проблемой, используя eclipse. было создано множество вложенных папок, и это заняло более 500 МБ пространства.

Я пробовал тонну вещей в windows, и ничего не работало..

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

предыдущие три ответа, очевидно, спам (для демо-версии payware). Если вы хотите бесплатное решение в один клик, см. здесь:

который, вероятно, использует 3-строчную Java из этого потока.

Я предлагаю вам работать сверху вниз. До тех пор, пока ты остаешься прежним. volume (share), вы обычно можете перетащить каталоги верхнего уровня в новые родители, независимо от содержания каталога перетащил (т. е. и проблемы с длиной / рекурсией, которые могут возникнуть). Так вы берете каталог, возможно, 4 или 5 уровней вниз по пути проблемы, и перетащите его в корень. Затем удалите исходный путь, который теперь только содержит несколько уровней. В идеале, работа, чтобы сохранить самый длинный путь к меньше более 250 символов (включая имена). Я делаю системную миграцию в момент, и у нас есть некоторые пользователи с 340 + char пути, которые не копировать без этого метода. Я пробовал subst, рекурсивное сетевое использование, рекурсивные скрипты и т. д.. К сожалению, пользователи, похоже, могут создавайте вещи, которые сбивают с толку лучших кодеров, админов так далее..

создайте новые папки и просто перетащите несколько папок сверху вниз каждый раз (и удалите их), пока вы не очистите все это.

программно вы можете удалить с помощью DeleteFileW и RemoveDirectoryW , и перед L»?» к именам файлов. Обратите внимание, что вы должны использовать версию W, а не версию A API.

кто-то выше уже разместил ссылку на «римраф», но позвольте мне добавить более подробную информацию. Если у Вас установлен узел в вашей системе, просто используйте rimraf модуль (он может быть установлен на ваш путь). Это, безусловно, самый простой способ удалить вещи в системе Windows в самых нетривиальных случаях. Это не так много, что римраф потрясающий, на самом деле, это потому, что узел.js обрабатывает файловые системы на уровне ядра устройства. Если вы посмотрите на исходный код модуля » fs » для Узел, вы увидите код, такой как этой. По сути, узел.js обрабатывает файловые системы намного лучше, чем даже Git для Windows, т. е. есть ошибка с использованием git clean-fdx в Windows, которая не удаляет папки с длинными именами.

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

IIRC, я удалил их программно, просматривая структуру папок.

хорошо, я попытался найти решение для этого, и я нашел одно из самых простых решений для пользователей windows

открыть mobaxterm. Перейдите в каталог, который вы хотите удалить (с помощью cd) и выполните следующую команду

все папки, вложенные папки, на удаление которых жаловалась windows, теперь будут удалены

Я не был очень доволен любым из решений, опубликованных здесь и в других местах (robocopy, 7zip, subst, shady spyware), поэтому я свернул свой собственный небольшой инструмент командной строки.

Он может рекурсивно удалить файл или весь каталог. Может быть, в будущем я добавлю больше вариантов.

инструмент называется SuperDelete и вы можете получить его от страница выпусков страница GitHub.

MIR (зеркальное отображение полного дерева каталогов )опция работала для меня в windows и сетевых путей окна, а также..

Как удалить файл с длиной пути более 260 символов

Не секрет, что проводник Windows, как и большинство других Windows-приложений, включая PowerShell, не умеют работать с объектами файловой системы с глубокой вложенностью папок, длина пути к которым превышает 260 символов. Причем это ограничение существует только на уровне приложений, а сама файловая система NTFS поддерживает пути к файлам вплоть до 32767 символов.

Данное ограничение наложено библиотекой Win32 API, а которой максимальная длина пути составляет 260 символов (MAX_PATH=260). В общем случае путь формируется из следующих элементов: [C:]+[путь_из_256_символов]+[ ], причем максимальная длина одного каталога/файла в NTFS — 255 символов в Unicode. При использовании юникодных функций API, возможно использовать путь до 32767 символов. Благодаря этому многие сторонние программы (те же популярные файловые менеджеры, например FAR и Total Commander) без каких-либо трудностей обрабатывает файлы/папки, длина пути к которым превышает 260 символов.

Это ограничение также не действует при сетевом доступе пользователей к файлам по протоколу SMB (за счет этого каталожные структуры с длинными путями нередкость именно на файловых серверах с пользовательскими данными). Администратор, обслуживающий данный сервер не может через стандартный интерфейс проводника Windows Explorer управлять (удалять/перемещать) файлы с длинными путями. При попытке создать/скопировать файл в такой каталог, появляется ошибка:

Другие программы/диалоговые окна могут сообщать о наличии ограничения по своему.

Согласитесь забавно, что за окном 2014 год, а мы до сих пор говорим об ограничении в 260 символов на максимальную длину пути в Windows… Но похоже в ближайшее время никаких кардинальных изменений не предвидится, и даже в совсем свежей Windows 10 Technical Preview это ограничение все еще существует.

В этой статье мы покажем, как в Windows можно работать с файлами, путь к которым превышает 260 символов. В данном кейсе наша задача – удалить каталог, содержащий файлы с большой длиной пути.

При попытке удалить такой каталог из проводника появляется ошибка:

Powershell также не умеет корректно обрабатывать каталоги и файлы с большими путями, превышающими 260 символов. При попытке удалить каталог с такими файлами (C:InstallMS SQL 2012 Express Edition 64 bitverylongpath) появляется ошибка:

Читайте также  Msi smart tool как пользоваться?

Remove-Item : The specified path, file name, or both are too long. The fully qualified file name must be less than 260

+ CategoryInfo : WriteError: (C:InstallMS S. itverylongpath:String) [Remove-Item], PathTooLongExcepti
on
+ FullyQualifiedErrorId : RemoveItemIOError,Microsoft.PowerShell.Commands.RemoveItemCommand

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

Другой вариант – создать символическую ссылку на часть пути, укоротив тем самым общую длину пути:

Далее файловые операции проводить с каталогом, на который назначена символьная ссылка.

Еще один вариант, напоминающий работу с символьной ссылкой — сопоставить проблемную папку виртуальному диску (в нашем примере X: ), тем самым также сократив длину пути:

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

Но лично мне больше всего для задачи удаления данных в таких ситуациях нравится возможности robocopy.exe, которая поддерживает работу с длинными путями.

С помощью опции /MIR, утилита robocopy может создать полную копию (зеркало) исходного каталога в целевом. И, если исходная папка пустая, все данные в целевой папке также очищаются. Создадим пустую папку C:Installtest и с помощью аргумента /MIR выполним копирование содержимое тестовой папки в целевую (если имя папки содержит пробелы или кириллические символы, путь нужно взять в кавычки).

После выполнения команды содержимое каталога C:InstallMS SQL 2012 Express Edition 64 bitverylongpath очищается (заменятся содержимым пустого каталога).

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

Слишком длинный путь к источнику? Используйте SuperDelete для удаления файлов, содержащих такие ошибки в Windows

Вы когда-нибудь видели ошибку в Windows File Explorer, которая говорит, что файл, который вы обрабатываете, имеет длинный путь ? Это потому, что Windows поддерживает только пути меньше 260. У вас могут быть файлы с более длинными путями, но проводник Windows не сможет выполнять определенные действия с этим файлом. В большинстве случаев источником этих файлов являются другие операционные системы и среды, в которых эти файлы поддерживаются и выполняются. Если вы хотите удалить такие файлы со своего компьютера, мы разработали небольшую утилиту под названием ‘SuperDelete«Это может вам помочь.

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

Затем вы можете получить диалоговое окно «Путь к источнику слишком длинный». Microsoft предлагает вам попробовать переместить файл в другое место. Но если это не поможет, используйте SuperDelete.

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

SuperDelete — это бесплатная утилита командной строки для Windows, которая позволяет удалять файлы и папки с очень длинными путями. Эта утилита очень полезна, если проводник Windows не может удалить некоторые нежелательные файлы, путь которых длиннее символов 260.

Этот небольшой инструмент очень прост в использовании и настройке. Все, что вам нужно сделать, это загрузить скрипт, открыть окно CMD и выполнить команды для удаления файлов. SuperDelete поддерживает файлы с путем до символов 32767, которые значительно превышают стандартный предел символов 260. Таким образом, инструмент должен работать достаточно хорошо для обычных пользователей.

Если у вас есть права администратора, вы также можете пропустить все элементы управления ACL и напрямую удалить файл или папку. ACL или Access Control List — это список записей управления доступом, которые определяют права доступа к объекту для опекуна.

Чтобы начать, перейдите в раздел релиза репозитория GitHub и загрузите последний исполняемый файл. При желании вы можете загрузить исходный код, если хотите интегрировать SuperDelete в свои проекты или скомпилировать его самостоятельно. Получив исполняемый файл, откройте окно PDC в этой папке. Теперь вы можете запустить следующие команды для удаления файла или папки:

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

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

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

SuperDelete — это удивительный маленький инструмент, который делает свою работу. Инструмент полностью работает из командной строки, и некоторым пользователям может быть трудно получить к нему доступ. Но в целом этот инструмент работает, когда вы удаляете файлы с длинными путями, к которым Windows Explorer не может получить доступ.

Нажмите здесь скачать SuperDelete.

Вы также можете попробовать Long Path Fixer для Windows 10. С помощью этого инструмента вы можете исправить все слишком длинные ошибки на вашем компьютере с Windows. У инструмента также есть пользовательский интерфейс, который позволяет легко перемещать или удалять файлы с длинными путями. TLPD также является искателем длинных путей к файлам для обнаружения файлов с длинными путями.

Только записи, принадлежащие администратору, могут выполнять шорткод include me

Не удаляется папка с изображениями с Рабочего стола

Не удаляется папка с изображениями с Рабочего стола. При попытке удалить появляется сообщение:

Указано неправильное или слишком длинное имя файла. Задайте другое имя.

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

Как быть? Как удалить эту злополучную папку?!

Сообщение о нарушении

Ответы (10) 

Не удаляется папка с изображениями с Рабочего стола. При попытке удалить появляется сообщение:

Указано неправильное или слишком длинное имя файла. Задайте другое имя.

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

Как быть? Как удалить эту злополучную папку?!

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

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

Сообщение о нарушении

38 польз. нашли этот ответ полезным

Был ли этот ответ полезным?

К сожалению, это не помогло.

Отлично! Благодарим за отзыв.

Насколько Вы удовлетворены этим ответом?

Благодарим за отзыв, он поможет улучшить наш сайт.

Насколько Вы удовлетворены этим ответом?

Благодарим за отзыв.

Сообщение о нарушении

3 польз. нашли этот ответ полезным

Был ли этот ответ полезным?

К сожалению, это не помогло.

Отлично! Благодарим за отзыв.

Насколько Вы удовлетворены этим ответом?

Читайте также  Монитор сам меняет яркость что делать?

Благодарим за отзыв, он поможет улучшить наш сайт.

Насколько Вы удовлетворены этим ответом?

Благодарим за отзыв.

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

Попробуйте дать имя из одного символа, 5.

Чем чёрт не шутит, может там всего парочки символов для того, чтобы вписаться в ограничение не хватает.

Ну а если это не поможет, то внимательно читайте статью Базы Знаний KB-320081: https://support.microsoft.com/ru-ru/kb/320081

Причина 4. Количество символов в пути файла превышает максимально допустимое (MAX_PATH)

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

Решение 1. Использование для доступа к файлу автоматически создаваемого имени в формате 8.3

Для решения этой проблемы можно воспользоваться автоматически создаваемым именем файла в формате 8.3. Это решение может оказаться наиболее простым, если чрезмерная длина пути вызвана длинными названиями папок. Если путь 8.3 тоже слишком длинен или имена в формате 8.3 для тома неактивны, воспользуйтесь решением 2. Дополнительные сведения об отключении имен файлов в формате 8.3 в томах NTFS см. в следующей статье базы знаний Майкрософт:

Переименуйте папку, чтобы длина пути конечных файлов не превышала значение MAX_PATH. Начните этот процесс с корневой папки (или с другого удобного места) и переименуйте папки, укорачивая их имена. Если это не решит проблему (например, если глубина пути файла составляет более 128 папок), перейдите к решению 4.

Решение 3. Подключение диска к папке в структуре пути

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

В качестве примера рассмотрим путь со следующей структурой:

В этом пути общее количество символов превышает 255. Чтобы уменьшить его длину до 73 символов, подключите диск к вложенной папке 4.

Решение 4. Использование общего сетевого каталога, глубина которого равна глубине папки

Если решения 1, 2 и 3 не подходят или не устраняют проблему, создайте сетевой каталог с максимально возможной глубиной в дереве папок и затем переименуйте папки, открыв каталог.

Решение 5. Использование средства, способного проследить глубокий путь

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

Эта проблема может появляться при создании общего каталога на достаточно большой глубине структуры папок и последующем углублении структуры от этого каталога. Некоторые средства, действующие на локальном уровне дерева папок, не могут прослеживать все дерево, начиная с корневого каталога. Необходимо особым образом использовать эти средства, чтобы они могли пройти путь до общего каталога. (Способ прохождения всего дерева в подобной ситуации описан в документации к интерфейсу API «CreateFile».)

Как правило, можно управлять файлами с помощью программ, в которых они были созданы. При наличии программы, способной создавать файлы глубже максимальной длины пути (MAX_PATH), ее обычно можно использовать для удаления или управления файлами. Для удаления файлов, созданных в общем ресурсе, обычно используется этот же ресурс.

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