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

от admin

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

Доброго времени суток.

Есть такая, казалось бы, очень простая задачка: требуется удалить папку со всем её содержимым. Только вот выяснилось, что если имя вложенной папки превышает 248 символов, или имя файла превышает 260 символов, то мы получаем ошибку и ничего удалить не можем.

Соответственно вопрос: как это сделать? Желательно средствами PS, но можно и VBS.

Самостоятельные изыскания привели к следующему. В этой статье MSDN описано что и как в общих чертах. В качестве наиболее простого решения рекомендовано перед путём к файлу указывать префикс "\\?\". Но, в этом блоге написано, что платформа .NET не позволяет использовать такой метод (см. часть 3), соответственно он не работает в PowerShell. Эмпирическим путём было установлено, что PS отлично удаляет папку с длинным именем, если её имя указать в формате 8.3, но я не нашёл способа, как получить такое "короткое" имя средствами самого же PS. Хотя в той же статье MSDN написано, что имена в формате 8.3 хранятся в файловой системе и для преобразования длинных имён в короткие рекомендуется использовать функцию GetShortPathName, пример использования которой написан на C++.

Файловая система не поддерживает такие длинные имена исходных файлов

Что значит «Файловая система не поддерживает такие длинные имена исходных файлов» при удалении файла и как это исправить?

Не запускается автокад. Параллельная конфигурация неправильная

Не запускается автокад. Параллельная конфигурация неправильна

MSVCR100.dll не обнаружен. Пожалуйста, установите нужные библиотеки

MSVCR100.dll не обнаружен. Пожалуйста, установите нужные библиотеки

скачать файл msvbvm50.dll

Что за файл msvbvm50.dll и где его скачать?

Не удаляется файл/папка. Появляется сообщение о длинных именах исходных файлов. Что делать?

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

Что это значит?

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

Вот так выглядит структура большой вложенности папок с длинными именами

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

Как это исправить?

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

Также существует и второй вариант решения данной проблемы. Программа Unlocker. Она удаляет все и вся в пару кликов мышкой без перемещения в корзину.

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

date03.03.2021
useritpro
directoryWindows 8
commentsкомментария 3

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

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

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

Ограничение на длину пути в Windows

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

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

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

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

Ошибка удаления файла с большой длиной пути

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

Remove-Item : The specified path, file name, or both are too long. The fully qualified file name must be less than 260
characters, and the directory name must be less than 248 characters.
At line:1 char:1
+ Remove-Item .\verylongpath -Recurse
+

Ошибка при удалении каталога с помощью командлета Powershell Remove-Item

+ CategoryInfo : WriteError: (C:\Install\MS S. it\verylongpath:String) [Remove-Item], PathTooLongExcepti
on
+ FullyQualifiedErrorId : RemoveItemIOError,Microsoft.PowerShell.Commands.RemoveItemCommand

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

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

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

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

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

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

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

robocopy /mir - создаем зеркало пустого каталогаrobocopy /MIR

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

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

Читать:
Task killer android что это

Как удалить файл, имеющий слишком длинные имя или путь

Невозможно удалить файл из-за слишком длинного имени?

Нажмите и удерживайте Shift, затем щелкните правой кнопкой мыши пустую область. Выберите «Открыть командное окно здесь». Откроется окно командной строки, сфокусированное на каталоге, в котором вы находитесь. … С умным использованием очень старой команды вы можете удалить любой файл независимо от длины имени файла.

Как удалить слишком длинное имя файла Windows 10?

Чтобы удалить слишком длинное имя файла, выполните следующие действия:

  1. Откройте проводник и перейдите в каталог, в котором находятся ваши файлы.
  2. Нажмите и удерживайте Shift, затем щелкните правой кнопкой мыши пустую область. …
  3. Введите следующую команду в окне командной строки: DIR / X.

Как исправить слишком длинное имя файла или расширение?

Что делать, если имя файла или расширение слишком длинное?

  1. Измените имя каталога. …
  2. Создайте сетевой диск. …
  3. Воспользуйтесь теракопией. …
  4. Скопируйте или переместите эти файлы в другую папку. …
  5. Добавьте эти файлы в архив. …
  6. Используйте командную строку. …
  7. Используйте Total Commander. …
  8. Используйте инструмент «Длинный путь».

Как удалить файлы с именами, слишком длинными для корзины?

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

Как принудительно удалить длинные имена файлов?

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

Как удалить файл, который не удаляется?

Для этого сначала откройте меню «Пуск» (клавиша Windows), введите «выполнить» и нажмите «Ввод». В появившемся диалоговом окне введите cmd и снова нажмите Enter. В открытой командной строке введите del / f имя_файла, где имя_файла — это имя файла или файлов (вы можете указать несколько файлов с помощью запятых), которые вы хотите удалить.

Не удается удалить исходный путь слишком долго?

Удалите файлы с длинным путем с помощью 7-Zip

  1. Откройте диспетчер файлов 7-Zip.
  2. Найдите путь, по которому вы увидите папку, которую хотите удалить. Выберите папку и нажмите Shift + Delete, чтобы мгновенно удалить папку (не перемещая ее в корзину) …
  3. Щелкните ОК для подтверждения.

Как исправить слишком длинный путь к файлу?

Исправлено: ошибка слишком длинного пути назначения

  1. Способ 1. Сократите имя родительской папки.
  2. Способ 2. Временно переименуйте расширение файла в текстовое.
  3. Метод 3: удалить папку с помощью DeleteLongPath.
  4. Метод 4. Включите поддержку длинного пути (Windows 10, версия 1607 или более поздняя)
  5. Метод 5. Использование команды xcopy в командной строке с повышенными привилегиями.

Что означает ошибка слишком длинного пути?

Ошибка 0x80010135: указан слишком длинный путь. Обычно эта ошибка возникает, когда вы используете Windows Explorer или WinZip для извлечения файлов и обнаруживает, что путь к файлу превышает максимальное ограничение на количество символов. Чтобы решить эту проблему, вы можете использовать утилиту распаковки, такую ​​как 7-Zip, которая может обрабатывать длинные пути к файлам.

Как переименовать файл с слишком длинным именем?

  1. откройте командную строку и найдите каталог с файлом.
  2. введите dir / X.
  3. эта команда покажет короткие имена 8 + 3, за которыми следуют длинные имена.
  4. найдите файл, который хотите переименовать, и используйте команду. переименовать "короткое имя" в новое имя
  5. "shortname" — это 8 + 3 name, а "newname" — это имя, которое вы хотите переименовать.

Как удалить папку с помощью командной строки?

Чтобы удалить каталог, просто используйте команду rmdir <имя каталога>. Примечание. Любые каталоги, удаленные с помощью команды rmdir, восстановить нельзя.

Как принудительно удалить папку в Windows 10?

3 метода принудительного удаления файла или папки в Windows 10

  1. Используйте команду «DEL» для принудительного удаления файла в CMD: доступ к утилите CMD. …
  2. Нажмите Shift + Delete, чтобы принудительно удалить файл или папку. …
  3. Запустите Windows 10 в безопасном режиме, чтобы удалить файл / папку.

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

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

  1. Откройте командную строку, запустив «CMD. EXE»
  2. Перейдите в папку, в которой находится файл.
  3. Используйте команду DIR / X, которая отобразит короткие имена файлов.
  4. Удалить, используя короткое имя.

Как скопировать файл с длинным именем?

  1. (если путь слишком длинный) Сначала скопируйте папку на верхние уровни в проводнике Windows, а затем переместите ее на свой локальный компьютер.
  2. (если имена файлов слишком длинные) Сначала попробуйте заархивировать / rar / 7z их с помощью приложения для архивирования, а затем скопируйте файл архива на свой локальный компьютер и затем извлеките содержимое.

Как удалить исходные файлы, имена которых больше, чем есть?

Исправлено: имена исходных файлов больше, чем поддерживается файлом …

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

date03.03.2021
useritpro
directoryWindows 8
commentsкомментария 3

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

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

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

Ограничение на длину пути в Windows

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

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

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

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

Ошибка удаления файла с большой длиной пути

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

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

Похожие статьи