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

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

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

195
задан ElektroStudios 2009-09-23 19:56:39
источник

8 ответов

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

mkdir empty_dir
robocopy empty_dir the_dir_to_delete /s /mir
rmdir empty_dir
rmdir the_dir_to_delete

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

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

416
отвечен Benoit 2015-10-12 11:15:50
источник

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

dir /X

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

del LONGF~1.txt
90
отвечен Will Eddins 2009-09-23 20:01:40
источник

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

52
отвечен joeqwerty 2009-09-23 21:40:55
источник

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

\.\C:\some directory\other directory\a file with long name
13
отвечен grawity 2009-09-23 20:12:29
источник

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

Итак, у вас есть c:\some\long\path...\и\фу\бар\папки\oldfiles\myoldfile.формат txt.

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

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

net use x: \mycomputername\fooshare\bar\folders /persistent:no

и диск X: теперь указывает непосредственно на папку "папки" внутри этой папки, так что "x:\oldfiles\myoldfile.txt " теперь довольно короткий.

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

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

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

13
отвечен AdamV 2012-02-21 21:18:15
источник

самый простой способ, который я нашел, чтобы загрузиться с ubuntu live CD.

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

9
отвечен Col 2009-09-23 19:59:00
источник

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

или просто из командной строки, Если вам не хочется проходить через неприятности.

5
отвечен Rook 2009-09-23 23:39:20
источник

наверное не самый лучший способ и мне интересно посмотреть что придумают другие -

У меня было это один раз, и я попробовал несколько вещей, не повезло. Вместо того, чтобы искать хороший инструмент, я перезапустил с диска Windows, пошел в консоль восстановления и просто удалил его оттуда. Работал первый раз и очень хорошо!

кроме того, просто сделал Google для вас и нашел это -DelinvFile выглядит хорошо, но не может ручаться за это.

Edit-Warning, просто видел выше, это только испытание-может быть, не так хорошо, как я сначала думал!

1
отвечен William Hilsum 2009-09-23 20:00:00
источник

Другие вопросы windows path filenames

X