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

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

    8 Solutions collect form web for “Как удалить файл в Windows со слишком длинным именем файла?”

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

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

    Это работает, потому что robocopy внутренне использует версии Win32 с поддержкой Unicode, с префиксом \\?\ Для путей к файлам ; Эти функции имеют предел 2¹⁶-1 (32,767) символов вместо 259.

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

    В командной строке:

     dir /X 

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

     del LONGF~1.txt 

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

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

      \\. \ C: \ some directory \ other directory \ файл с длинным именем 

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

    Поэтому у вас есть c: \ some \ long \ path … \ and \ foo \ bar \ folders \ oldfiles \ myoldfile.txt.

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

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

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

    И X: диск теперь указывает прямо на папку «папки» внутри этого общего ресурса, поэтому «x: \ oldfiles \ myoldfile.txt» теперь довольно короткий.

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

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

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

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

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

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

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

    Наверное, это не лучший способ, и мне интересно узнать, что другие придумали –

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

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

    Изменить – Предупреждение, только что видно выше – это только пробная версия. Возможно, это не так хорошо, как я сначала подумал!

    Давайте будем гением компьютера.