Как удалить файлы и папки, которые нельзя удалить?

28

У меня есть резервная копия предыдущей Documents and Settingsпапки Windows, которая содержит только моего первоначального пользователя и еще в двух каталогах: Favoritesи Local Settings.

Когда я пытаюсь удалить, Local Settingsя получаю эту ошибку:

альтернативный текст

Когда я пытаюсь удалить Favorites, я получаю эту ошибку:

альтернативный текст

Я запустил это в оболочке cmd :

attrib *. * -r -a -s -h / s

... но это не помогло и не вернуло никаких ошибок / предупреждений.

Я использовал Unlocker v1.8.5и LockHunterнеоднократно на нескольких уровнях, чтобы увидеть, если какие-либо файлы используются, но оба всегда говорят: Нет файлов заблокированы .

Обновление № 1:

Мне удалось переименовать каталог, который теперь выдает мне это предупреждение перед (пытаясь) удалить:

альтернативный текст

Если я нажимаю Да (или Да для всех ), я получаю эту ошибку:

альтернативный текст

Обновление № 2:

Я позволил chkdsk /fзапустить, что потребовало перезагрузки, так как он находится на моем основном системном разделе. Во время сканирования 2-го этапа я получил около 40 из них:

Удаление записи индекса из индекса $ 0 файла 25.

...с последующим:

Удаление файлов cookie записи индекса в индексе $ I30 файла 37576.

... но я все еще получаю первый диалог ошибки выше при попытке удалить.

Я снова запустил chkdsk, на этот раз chkdsk /f /r. Произведено без сообщений. Тот же результат при удалении.

Обновление № 3:

Копая глубже, 99это название одного из многих каталогов, расположенных глубоко здесь:

C: \ Documents and Settings.OLD \ Пользователь \ Локальные настройки \ Данные приложения \ Microsoft \ Messenger \ address@hotmail.com \ SharingMetadata \ user@hotmail.com \ DFSR \ Staging \ CS {D4E4AE55-B5E2-F03B-5189-6C4DA6E41788 } \

Внутри каждого из этих каталогов были файлы с такими именами, как:

2300- {C93D01AC-0739-4FD9-88C7-13D2F21A208E} -v2300- {C93D01AC-0739-4FD9-88C7-13D2F21A208E} -v2300-Downloaded.frx

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

Исходный каталог = 194 символа
Имена файлов = 100+ символов
Вместе длина превышает ограничение в 255 символов, что неверно и объясняет сообщение об ошибке, которое я разместил в Обновлении № 1.

Частичное решение:

Переименовывайте все каталоги, пока общая длина пути не станет меньше 100. После этого я смог переименовать .frxфайлы, не говоря уже о том , чтобы удалить все внутри Local Settingsкаталога.

Это только частичное решение, потому что эти (пустые) каталоги по-прежнему нельзя удалить,

C: \ 1 \ 2 \ Избранное \ Wien \ Что делать ..
C: \ 1 \ 2 \ Избранное \ Фотография \ ОГОНЬ

Та же ошибка, что и выше:

альтернативный текст

Вот что показывает свойства Explorer для обеих папок:

альтернативный текст

Обновление № 4 (другое частичное решение):

Использование ответа harrymc в сочетании с тщательным чтением этой удивительной статьи на MS-KB, в которой содержатся почти все идеи, а затем некоторые, под незаметным названием: Вы не можете удалить файл или папку на томе файловой системы NTFS .

Мне удалось удалить 2-ую папку C:\1\2\Favorites\Photography\FIRE- проблема в том, что в конце был невидимый трейлер. Мне повезло, когда я сделал автозаполнение, играя с del "\\?\<path>"командой, которую он предложил.

ПРИМЕЧАНИЕ: нормальный delне работал, ни удаление из explorer.

Теперь все, что осталось, - это первый каталог C:\1\2\Favorites\Wien\What To Do..(да, я без конца пробовал несколько комбинаций вышеуказанного решения;)

glenneroo
источник
@glenneroo попробуйте использовать LockHunter вместо Unlocker и посмотрите, что там написано. Кроме того, что происходит, когда вы нажимаете «Да» или «Да для всех» в поле «Подтвердить удаление файла»?
Ubiquibacon
LockHunter также говорит, что никакие процессы не блокируют этот файл или папку.
glenneroo
У меня была похожая проблема, так как вы с некоторыми файлами Adobe, закопанными глубоко в некоторые папки из резервной копии установки Windows. Я попытался переименовать все папки в «x», чтобы сократить путь, но это не сработало. Я оставил их таким образом, чтобы напомнить мне, что они не были ничем, и позволил им сидеть там в течение пары лет, пока я, наконец, не DBANed диск, прежде чем отправить его кому-то.
Тофистедет
1
Из-за очень маленьких свойств файла, которые вы видите (даже даты), я думаю, что это указатель файла, который указывает на файл, который не существует. Я не знаю, как это исправить, но это может дать представление кому-то, кто знает ...
благосклонность
1
Просто потому, что есть мертвые файлы, которые даже не занимают много места? Приводу ~ 2 года, и я бы предпочел не устанавливать его заново . Что касается SMART-чтений, Google опубликовал здесь отчет, в котором, в основном, говорится, что вы не можете придавать слишком большой вес большинству из этих чтений: labs.google.com/papers/disk_failures.pdf Также chkdsk / R не сообщил ничего плохого. Можете ли вы порекомендовать инструмент для Windows в качестве ответа?
glenneroo

Ответы:

29

del для удаления файлов, rd aka rmdir для удаления папок, так что ...

rd /s "\\?\C:\1\2\Favorites\Wien\What To Do.."

... должен сделать работу! :-)

/sпараметр

удаляет все каталоги и файлы в указанном каталоге в дополнение к самому каталогу.
Используется для удаления дерева каталогов.


Если это не работает; даже не с подстановочными знаками / автозаполнением; тогда у вас есть проблемы с коррупцией.

оборота Том Вейсман
источник
о человек, который выглядит так, как будто это может быть ответ прямо здесь :-)
Джеймс Т
Ух ты, удивительно, кто-то наконец-то понял Вы выиграли двойной бонус! :)
glenneroo
@glenneroo: проголосовали за всех, кто помог к этому как возвращение. :-)
Тамара Вийсман
6

Я бы попробовал запустить chkdsk, как предложил Джефф. Если это не сработает, вы можете загрузиться с Linux Live CD, смонтировать жесткий диск и удалить папки из среды Linux.

byachna
источник
Я крайне не решаюсь использовать альтернативу (NTFS с закрытым исходным кодом) для удаления файлов из раздела NTFS. Исходя из моего опыта, поддержка чтения обычно работает нормально, но написание может быть опасным.
glenneroo
1
Поддержка записи в NTFS теперь очень хороша в современных дистрибутивах Linux, особенно с учетом того, что даже WinXP не полностью реализует спецификацию NTFS.
Джонатан
1
Согласен, Linux имеет отличную поддержку NTFS.
Джефф Ф.
Не так давно (лето 2010 года) я использовал ntfs-3g для удаления файлов перед переустановкой XP. Впоследствии во время установки XP chkdskобнаружил метрическую потерю поврежденных файлов. Мне также удалось убить драйверы NTFS в прошлом, просто делая чтения. Конечно, оба случая были на крайне фрагментированных разделах с несколькими 100 000 файлов.
glenneroo
6

У вас очень вероятно повреждение FS (файловой системы). Запустите chkdsk, затем попытайтесь удалить файлы.

Также убедитесь, что в каталоге ничего не используется, как следует из предупреждения.

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

Джефф Ф.
источник
Я использовал этот инструмент, Unlockerчтобы убедиться, что ни в одном из этих файлов не было никаких ручек.
glenneroo
Это то, что я понял. Вам, вероятно, нужно запустить chkdsk / f
Джефф Ф.
1
@Moab: Нет, очистка индекса с помощью chkdsk - это нормально. Это артефакт того, как они хранятся, их можно очистить только во время проверки диска. Я не могу вспомнить, где я это читал.
afrazier
1
@glennroo - bsod во время операций записи также является признаком сбоя диска. Я не был бы удивлен, увидев твой диск в прошлом году, но я также не был бы удивлен, увидев, что он умрет завтра.
Джоэл Коухорн
1
Я вижу, что у вас есть трида chkdsk /F; попробуйте также, chkdsk /Rкоторый выполняет 2 дополнительных шага, чтобы попытаться пометить поврежденные сектора и восстановить данные.
AniDev
5

Я все еще получаю диалоговое окно с сообщением об ошибке 99 выше, когда пытаюсь удалить.

99 - это не номер ошибки - это имя файла или папки внутри папки, которую вы хотите удалить. Ищите этот предмет.

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

Чтобы это исправить, щелкните правой кнопкой мыши файл (или его папку, чтобы убедиться, что вы все получили), выберите Propertiesв контекстном меню и Securityоткройте вкладку в открывшемся диалоговом окне. На этом экране будет Advancedкнопка, которую вы должны нажать. Ищите Ownerвкладку в диалоговом окне открывается. Теперь вы сможете использовать это окно, чтобы получить право собственности, которое назначит новые записи разрешений для элемента и, наконец, позволит вам удалить его.

Джоэл Коухорн
источник
Хороший вопрос по поводу имени файла! Установка разрешений не помогла, но я случайно нашел половину ответа!
glenneroo
5

Следующее, что я прочитал на сайте поддержки Microsoft :

1) использовать dir /xдля получения коротких имен (обозначение 8.3) перечисленных файлов / папок 2) использовать rmdir /s shortnameдля удаления папки с нестандартным длинным именем

pt3
источник
Отличная идея! К сожалению, все папки, которые я не могу удалить, не имеют короткого имени, т.е. они пустые, когда я dir /x
печатаю
3

Вы можете использовать \\?\синтаксис Unicode в cmd для удаления слишком длинных каталогов, поскольку длина пути с этим синтаксисом «ограничена» 32 767 символами:

del /s /f /q "\\?\C:\Documents and Settings.OLD\User\Local Settings\Application Data\Microsoft\Messenger\address@hotmail.com\SharingMetadata\user@hotmail.com\DFSR\Staging\CS{D4E4AE55-B5E2-F03B-5189-6C4DA6E41788}\"
rmdir "\\?\C:\Documents and Settings.OLD\User\Local Settings\Application Data\Microsoft\Messenger\address@hotmail.com\SharingMetadata\user@hotmail.com\DFSR\Staging\CS{D4E4AE55-B5E2-F03B-5189-6C4DA6E41788}\"

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

См. Microsoft именования файлов, путей и пространств имен .

harrymc
источник
Это будет работать, но я считаю, что delкоманда имеет MAX_PATHпредел :(
Билли ONeal
Хороший трюк! Я обошел длинные имена файлов, переименовав каталоги в 1-2 символа. Я попробовал эти команды в обоих оставшихся каталогах: Could not find file.затемThe system cannot find the file specified.
glenneroo
Обновил мой ответ. Используя эту версию, delя смог удалить одного из двух оставшихся преступников (у которых был завершающий пробел). Щедрость твоя, но сюжет сгущается!
glenneroo
В крайне проблемных случаях вы можете удалить вместо этого содержащий каталог (после удаления содержимого, которое вы хотите сохранить).
Harrymc
Очень рад, у меня испорченное имя каталога в течение 3 лет и, наконец, нашел это! Использование приведенной выше команды rmdir позволило мне избавиться от сломанного каталога.
Хазимат
2

Я лично согласен с Byachna и CarlF, что Linux Live CD - ваш лучший выбор. Linux не заботится о разрешениях, поэтому вы можете входить и удалять вещи без каких-либо жалоб. У меня никогда не было проблем с записью NTFS из Linux. Я занимаюсь этим регулярно на протяжении нескольких лет.

Я понимаю, что вы не хотите связываться с Linux, поэтому я предложу кое-что еще. Что-то, что Ашимема уже предложила ... но забыла несколько ссылок. Вместо Linux Live CD, вы можете попробовать один из многих Windows Live CD.

http://www.ubcd4win.com/ (требуется xp install cd для создания)

http://www.reatogo.de/REATOGO.htm (требуется xp install cd для создания)

http://www.nu2.nu/pebuilder/ (требуется xp install cd для создания)

http://www.vistape.net/index.php (требуется Vista установить DVD для создания)

Попробуйте загрузиться с любого действующего компакт-диска, который вы решите использовать, и удалите папки, которые вызывают все проблемы. Поскольку это окна, он будет обеспечивать права доступа к файлам. Возможно, вам придется изменить разрешения или владельца файлов, чтобы удалить их. Perhapse даже попробовать "\? \" Трюк с компакт-диска живых окон.

Другая вещь, которую можно попробовать - это команда cacls или icacls, чтобы проверить, можете ли вы дать себе разрешения для папок.

Джеймс Т
источник
Дадим им попытку и доложим (когда у меня будет пара часов).
glenneroo
0

Загрузите свою систему с помощью дистрибутива Linux с поддержкой NTFS, скажем, Ubuntu liveCD.

Смонтируйте файловую систему Windows.

Удалите все, что хотите, поскольку Windows не сможет сказать «Нет».

ПЕРЕД ДЕЛАМ ЭТОГО СДЕЛАТЬ ПОЛНОЕ РЕЗЕРВНОЕ КОПИРОВАНИЕ.

CarlF
источник
1
Спасибо, но бьячна уже предложила это. Я не решаюсь попробовать, потому что в прошлом у меня были проблемы с поврежденными файловыми системами. Также этот случай имеет дело с поврежденными файлами, то есть использование неподдерживаемого драйвера NTFS может просто испортить мою систему.
glenneroo
В моем ограниченном опыте нынешние драйверы NTFS в Linux на самом деле менее подвержены повреждению файловых систем, чем Windows.
CarlF
3
Мне бы очень хотелось увидеть данные, подтверждающие это утверждение. У меня никогда не было Windows, повреждающей ФС, за исключением неисправного оборудования.
Билли Онил
Есть причина, которую я написал "в моем ограниченном опыте". У меня была пара проблем, таких как glenneroo с использованием Windows (XP и Vista) и ни одной с NTFS-3G. Я думал, что отказ от ответственности сделает это ясно.
CarlF
0

Есть много запутанных и сложных способов решить эту проблему, как я узнал в прошлом.

Теперь, когда я уверен в том, что я делаю, я просто запускаю chkdsk, затем загружаю live cd, чтобы удалить файлы, если проблема все еще была (если вы беспокоитесь о возможностях linux с помощью ntfs, тогда попробуйте либо BartPE либо [Windows PE] [2], оба в свободном доступе)

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

оборота Ашимема
источник
Приветствую Джеймса за добавление ссылок, которые я не мог (будучи слишком новым здесь) в посте ниже!
Ашимема
0

Поздно до вечеринки, но этот метод работает большую часть времени, если не загрузиться с дистрибутива Linux и удалить его оттуда.

Откройте окно командной строки с повышенными правами и оставьте его открытым.

Закройте все открытые программы.

Нажмите Пуск, Выполнить и введите TASKMGR.EXE. Перейдите на вкладку "Процессы" и завершите процесс в "Explorer.exe". Оставьте диспетчер задач открытым.

Вернитесь в окно командной строки и перейдите в каталог, в котором находится AVI (или другой файл, который нельзя восстановить). В командной строке введите DEL <полный путь к файлу, который вы хотите удалить>, или любую другую команду, которую вы хотите.

Вернитесь в Диспетчер задач, нажмите Файл, Новая задача и введите EXPLORER.EXE, чтобы перезапустить оболочку графического интерфейса. Закройте диспетчер задач.

Moab
источник
-1

Ответ Джоэла наполовину прав, сначала нужно активировать вкладку безопасности, перейти к панели управления> Параметры папок и вторая вкладка (я забыл ее имя), в конце списка с параметрами есть кое-что о расширенном управлении папками (снова я не знаю, как называется по-английски), как только вы это сделаете, вы можете установить разрешения для своего пользователя на вкладке безопасности, как упоминалось ранее.

Гильермо Силичео Труба
источник
У меня уже были включены эти опции, плюс я уже попробовал то, что он порекомендовал, но это не помогло. Прочитайте Обновление № 3 и Частичное решение о том, что происходит. Папка, которую я не могу удалить, даже не имеет никаких свойств, а тем более опций безопасности.
glenneroo
Убедитесь, что вы добавляете полный доступ и параметры для пользователя ВСЕ, с включенным верификатором пользователя, вы можете сделать это.
Гильермо Силичео Труба