14

У меня на диске Windows довольно большое количество файлов с двоеточием в названии. (Это произошло после распаковки некоторых архивов Unix.)

Когда я пытаюсь удалить их, Windows (XP) жалуется, что файл не существует, и отказывается удалить его. Это происходит при попытке удалить или переименовать его из проводника или командной строки. Тем не менее, chkdsk не жалуется на эти файлы и не решает проблему.

Есть идеи как от них избавиться?

7 ответов7

8

Вы можете попробовать загрузиться с Ubuntu Live CD и удалить его оттуда.

7

Вы можете использовать этот синтаксис (для Microsoft KB 320081):

del "\\?\c:\path_to_file\bad:name.ext"

См. Также этот вопрос об ошибке сервера на ту же тему:«Удалить файл, содержащий недопустимые символы в Windows».

Я думаю, что старые утилиты sysinternals "ntfsdos" могли также удалять / переименовывать эти файлы, но они больше не доступны после приобретения MS.

5

Закройте все файлы, если они открыты, которые сохранены на диске, содержащем такие файлы. Теперь откройте свойства диска.

"Мой компьютер" -> "Щелкните правой кнопкой мыши на этом диске"> Свойства

Затем перейдите на вкладку « Инструменты » и нажмите « Проверить сейчас » под меткой « Проверка ошибок».

[Нажмите здесь для изображения]()

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

Я успешно удалил такие файлы с моего внешнего жесткого диска.

1

Вы можете легко сделать это в командной строке (CMD) без каких-либо модных программ.

  1. Переименуйте файл / папку, используя старые короткие обозначения (например, для имени файла, FILENA ~ 1) и. Чтобы получить обозначения, перейдите в каталог, содержащий папку / файл с недопустимым именем, и введите:

    реж / х

  2. Переименуйте в правильное имя, используя:

    ren FILENA ~ 1 fileName

  3. Теперь удалите действительный файл / папку в CMD или в проводнике Windows:

    del fileName

0

Если ничего не помогает, вам может потребоваться изменить имя непосредственно в NTFS.

Я сделал это успешно с Active @ Disk Editor. Действовать с осторожностью.

  • открыть программу
  • выберите Исследовать мой компьютер
  • найди свой файл
  • выберите Inspect File Record на панели кнопок или в контекстном меню
  • включите параметр «Разрешить редактирование содержимого» в раскрывающемся меню «Редактировать» или в контекстном меню.
  • найдите имя в столбце Unicode и щелкните по нему, замените плохие символы на хорошие, такие как символ или тире. Вспомните, что и как вы переименовали, это понадобится вам на следующем шаге.
  • вернуться на вкладку «Мой компьютер»
  • выберите родительский каталог файла в виде дерева
  • выберите Inspect File Record на панели кнопок или в контекстном меню
  • в древовидном представлении слева найдите атрибут $ A0 (жирным шрифтом), откройте его, найдите $ INDEX_ALLOCATION, Запуск данных, Первый кластер, щелкните значение, оно должно быть интерактивным.
  • найдите имя и отредактируйте его так же, как в предыдущем шаге. Возможно, вам придется прокрутить немного вниз, чтобы найти его, если в каталоге много файлов.
  • если вы уверены, что случайно не перезаписали другие данные, нажмите «Сохранить». В противном случае закройте вкладку, не сохраняя изменений, и осторожно сделайте все снова.
  • перезагружать.

Если файл или каталог по-прежнему недоступны, попробуйте chkdsk сейчас.

0

Чтобы исправить это в Windows 7:

chkdsk C:/r
-2

Другая альтернатива, которую вы можете попробовать, - это ввести CygWin, оболочку bash для Windows. Это позволит вам применять команды UNIX к вашим папкам DOS.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .