Проблема: У меня есть подкаталог Windows 7, который я не могу удалить.
В то время как я знаю других здесь, и многие другие в Интернете спрашивают об этом общем классе проблем с файловой системой Windows 7, мой вопрос здесь конкретно относится к определенному классу не подлежащих удалению файлов в Windows 7, которые имеют конечное пространство в имени каталога.
Есть ли лучший инструмент для проверки и/или редактирования моей файловой системы (в случае необходимости в шестнадцатеричном формате)?
ОС: Я запускаю x64 professional и полностью обновляюсь.
Что было опробовано: Я прочитал много веб-страниц на эту тему и попробовал много потенциальных решений. Недавно я изучил проблему с помощью PowerShell, которая, похоже, полностью способна работать с внутренними системами. На данный момент я ищу что-то вроде шестнадцатеричного редактора для файловой системы.
Что это не вызвано:
- длинное имя файла или
- находясь на длинном пути,
Что он не исправил:
- Переименование с использованием старой схемы имен файлов DOS
- Запуск CHKDSK всей файловой системы
- Выключение всех других программ, которые могут быть доступны для него.
- Отключение программного обеспечения для вирусов
- Использование утилиты Delinvfile.exe 4.5. Примечание: Delinvfile говорит, что он не может исправить "Файлы и папки с коротким именем, которое содержит недопустимые символы. К ним относятся символы [которые запрещены именами файлов]:
< - Less than symbol > - Greater than symbol : - Colon " - Quotation Mark / - Forward Slash | - Vertical Bar ? - Question mark * - Asterisk
Что вызвало это? В моем случае не удаляемый подкаталог был создан несколько месяцев назад с помощью PHP, которую я использую для резервных копий исходного дерева. Кажется, у него есть либо пробел, либо другой плохой символ, но я не могу быть уверен. Он отображается в каталоге файлов, но недоступен для удаления, переименования, rmdir и т.д.
Исследование: Я могу переместить его в свою файловую систему и поместил его в подкаталог, называемый "hold bad subdir" на C:.
Здесь вы можете увидеть с помощью PowerShell. Сначала я показываю его с Get-ChildItem (который совпадает с псевдонимом 'dir'):
PS C:\holds bad subdir> Get-ChildItem
Directory: C:\holds bad subdir
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 1/9/2014 3:01 AM 20120530-04
Если я попытаюсь удалить его в окне cmd, набрав "del" 2 "+", он завершит расширение имени файла следующим образом: del "20120530-04", показывая, что в конце имя каталога. Когда я выполняю эту команду, результат:
Не удалось найти C:\has bad subdir\20120530-04
Если я попытаюсь удалить его с помощью del 2 *, система вернется, как если бы она удалила его, но не делает.
Если я выдаю эту же команду в PowerShell, а также с опцией Force
, она сообщает: "Объект по указанному пути C:\has bad subdir\20120530-04 не существует", следующим образом:
PS C:\holds bad subdir> Remove-Item 2* -Force Remove-Item : An object at the specified path C:\holds bad subdir\20120530-04 does not exist.At line:1 char:1
+ Remove-Item 2* -Force
+ ~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Remove-Item], PSArgumentException
+ FullyQualifiedErrorId : Argument,Microsoft.PowerShell.Commands.RemoveItemCommand
Это странно, потому что каталог может его явно видеть, но любые методы, по-видимому, либо не могут его увидеть, либо не могут быть применены к нему.
Я также могу просмотреть не подлежащую удалению подкаталог в Windows Explorer. Когда я просматриваю его, он говорит: "Эта папка пуста". И если я попытаюсь удалить его там, я получаю:
Также, если я просматриваю свойства этой папки, я вижу, что это имя "20120530-04", то есть с дополнительным пространством в конце.
Также интересно, что вкладка "Безопасность" сообщает "(X) Запрошенная информация о безопасности либо недоступна, либо не отображается".
И это не только для чтения, но и для скрытых.
Сфера действия проблемы:. Теперь это не большая проблема, ее похоронить в подкаталог, находящийся в внедорожнике, просто нет, и просто не беспокойтесь об этом.
Но для меня это превратилось в интеллектуальный вызов и отчасти способ узнать больше о кистях Windows 7. Наверное, я удивлен, что такая ошибка в Windows может существовать на таком низком уровне и с таким количеством систем, установленных в мире. В этот момент трудно узнать, является ли это ошибкой Windows, плохими данными (что приводит к ошибке) или просто плохими данными.