Переименование неверного имени файла в NTFS

9

Недавно я одолжил свой флэш-диск одному из моих друзей, у которого была Mac OS. Он скопировал на него файл, имя которого включало обратную косую черту (\).

Флэш-диск отформатирован в NTFS. Windows не разрешает такие имена файлов, и не открывает файл, не удаляет его и не позволяет мне удалить файл.

Есть наивные подходы к этой проблеме, такие как:

  • Форматирование флешки;
  • Вернуть его моему другу и попросить переименовать его;
  • Загрузка в живой Linux и переименование.

Тем не менее, я ищу что-то более умное, например, программу, способную добиться успеха под Windows.

PS: есть инструмент под названием NTFSWalker, который может просматривать записи MFT NTFS, но не может вносить в них какие-либо изменения.

М.С. Дусти
источник
2
Вы найдете Как заставить Windows XP переименовать файл со специальным символом? полезное чтение - единственный реальный ответ - использовать Linux.
DMA57361
Попробуйте проверить диск. (Щелкните правой кнопкой мыши значок диска → Свойства → Инструменты → в разделе «Проверка ошибок», нажмите «Проверить сейчас» → «Автоматически исправлять ошибки файловой системы».) Это было одним из предложений в связанном вопросе выше, но оно никогда не пробовалось.
Bavi_H
@Bavi_H: Извините, проверка диска тоже не работает.
MS Dousti

Ответы:

5

Все Win32 API используют обратную косую черту в качестве разделителя каталогов. Существует небольшая вероятность того, что подсистема POSIX принимает его как часть имени файла, так что вы можете попробовать mvиз служб для Unix .


Я бы не сказал, что использование Linux для исправления - это «наивно», если бы Unix был тем, что сломало его в первую очередь.

user1686
источник
Я пытался mvраньше. Это не сработало.
MS Dousti
О «наивном»: я имел в виду какое-то решение, которое приходит на ум в первую очередь.
MS Dousti
@ Садек: О чем mvты говоришь?
user1686
2
@ Садек: Обе они простые программы Win32. Я недвусмысленно упомянул Services for Unix - его программы работают в отдельной подсистеме «POSIX» с правилами, отличными от правил Win32.
user1686 25.11.10
1
Подсистема POSIX также используется NtOpenFileдля открытия файлов и NtOpenFileобрабатывает путь в целом, а не как ряд компонентов (есть флаг для использования семантики «POSIX», но это только для чувствительности к регистру) - поэтому он следует тем же правилам.
user541686
3

Я обнаружил, что 7zip может часто иметь дело со странными файлами при сбое Windows (полезно для путей, которые слишком длинные, чтобы удалить их в обычном порядке) - попробуйте.

Dentrasi
источник
Сожалею. 7zвыдает ту же ошибку, что и Windows.
MS Dousti
У меня тоже не работает
Марк Джеронимус
2
7z применил магию для моего случая, когда имена файлов заканчивались несоответствующим пробелом. Я пробовал кучу утилит для борьбы с этим, но работал только 7z.
Майк Симпсон
2

Вы можете использовать CHKDSK /Fиз командной строки DOS, чтобы исправить ошибки, а затем, RD /S <DIR>где <DIR>находится каталог, который вы хотите удалить. Будьте осторожны, так как это удалит каталог и все его подкаталоги.

юлианский
источник
-1

Я открыл папку с недоступными символьными файлами в файловом менеджере 7zip. Там я переименовал его и БИНГО, его переименовали. Таким образом я смог получить доступ к файлу.

7zip - бесплатная утилита сжатия файлов, лучше, чем RAR.

Arun
источник
5
Разве ваш ответ не совпадает с ответом Дентрази?
MS Dousti