Як видалити файли та папки, які неможливо видалити?


28

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

Коли я намагаюся видалити, Local Settingsя отримую цю помилку:

alt текст

Коли я намагаюся видалити Favorites, я отримую цю помилку:

alt текст

Я запустив це в оболонці cmd :

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

... але це не допомогло і не повернуло жодних помилок / попереджень.

Я використовував Unlocker v1.8.5і LockHunterнеодноразово на декількох рівнях, щоб перевірити, чи використовуються якісь файли, але обидва завжди кажуть: Файли не заблоковані .

Оновлення №1:

Мені вдалося перейменувати каталог, який зараз дає мені це попередження перед (намаганням) видалити:

alt текст

Якщо я натискаю Так (або Так для всіх ), я отримую цю помилку:

alt текст

Оновлення №2:

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

Видалення запису індексу з індексу $ 0 файлу 25.

... далі:

Видалення файлів cookie для введення індексу в індексі $ I30 файлу 37576.

... але я все-таки отримую перше діалогове вікно помилок при спробі видалити.

Я знову побіг chkdsk, на цей раз : chkdsk /f /r. Повідомлень немає. Той самий результат при видаленні.

Оновлення №3:

Копаючи глибше, 99це назва одного з багатьох каталогів, розташованих тут глибоко:

C: \ Документи та параметри.OLD \ Користувач \ Локальні налаштування \ Дані програми \ Microsoft \ Messenger \ address@hotmail.com \ SharingMetadata \ user@hotmail.com \ DFSR \ Постановка \ CS {D4E4AE55-B5E2-F03B-5189-6C4DA6E41788 } \

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

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

Я помітив, що, на відміну від усіх каталогів, я не зміг перейменувати жоден із цих файлів. Я також помітив, що імена файлів + dir були надзвичайно довгими:

Оригінальний каталог = 194 символів
Імена файлів = 100+ символів
разом довжина перевищує обмеження 255 знаків, що є поганим, і пояснювало б повідомлення про помилку, яке я розмістив у оновленнях №1.

Часткове рішення:

Перейменуйте всі каталоги, поки загальна довжина шляху не стане менше 100. Згодом я зміг перейменувати .frxфайли, не кажучи вже про видалення всього всередині Local Settingsкаталогу.

Це лише часткове рішення, оскільки ці (порожні) каталоги все ще не можна видалити,

C: \ 1 \ 2 \ Вибране \ Відень \ Що робити ..
C: \ 1 \ 2 \ Вибране \ Фотографія \ FIRE

Та сама помилка, що і вище:

alt текст

Ось що показує властивості Explorer для обох папок:

alt текст

Оновлення №4 (ще одне часткове рішення):

Використання відповіді harrymc у поєднанні з ретельним прочитанням цієї дивовижної статті MS-KB, яка містить ідею майже кожного, а потім декілька, непомітно під назвою: Ви не можете видалити файл або папку на томі файлової системи NTFS .

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

ПРИМІТКА: Нормальний delНЕ працював, а також не видаляв з нього explorer.

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


@glenneroo спробуйте скористатися LockHunter замість Unlocker і подивіться, що там написано. Також, що відбувається, коли ви натискаєте "Так" або "Так для всіх" у полі "Підтвердити видалення файлу"?
ubiquibacon

LockHunter також каже, що жоден процес не блокує цей файл чи папку.
glenneroo

У мене була подібна проблема, як у вас із деякими файлами Adobe, закопаними глибоко в деякі папки із встановленої резервної копії Windows. Я спробував перейменувати всі папки на 'x', щоб скоротити шлях, але це не вийшло. Я покинув їх таким чином, щоб нагадати мені, що вони нічого не мали, і нехай вони сидять там пару років, поки я нарешті не передав диск, перш ніж відправити його комусь.
Тофістед

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параметр

видаляє всі каталоги та файли у вказаному каталозі, крім самого каталогу.
Використовується для видалення дерева директорій.


Якщо це не працює; навіть не за допомогою макіяжів / автоматичного завершення; то у вас є корупційні проблеми.


о, людина, схоже, це може бути відповіддю прямо тут :-)
Джеймс T

Ух дивовижний хтось нарешті це отримав! Ви виграєте подвійний бонус! :)
glenneroo

@glenneroo: Визвали всіх, хто допоміг досягти цього, як повернення. :-)
Тамара Війсман

6

Я б спробував запустити chkdsk спочатку, як запропонував Джефф. Якщо це не працює, ви можете завантажитися з живим компакт-диском Linux, змонтувати жорсткий диск та видалити папки з живого середовища linux.


Я вкрай не вагаюся використовувати альтернативу (для закритого джерела 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
Jeff F.

1
@Moab: Ні, очищення індексу за допомогою chkdsk є нормальним. Це артефакт того, як вони зберігаються, їх можна очистити лише під час перевірки диска. Я не можу згадати, де я це читав.
afrazier

1
@glennroo - bsod під час операцій запису також є ознаками несправності диска. Я не був би здивований, коли побачив ваш диск ще один рік, але я також не здивуюсь, коли завтра він помре.
Joel Coehoorn

1
Я бачу, що у вас трид chkdsk /F; спробуйте також виконати chkdsk /Rдва додаткові кроки для спроби позначити погані сектори та відновити дані.
AniDev

5

Я все ще отримую діалогове вікно Помилка 99 вище при спробі видалити.

99 - це не номер помилки - це ім'я файлу чи папки всередині папки, яку потрібно видалити. Шукайте цей предмет.

Щойно ви знайдете, він просто скаржиться на помилку дозволу. Це, ймовірно, тому, що в деяких папках профілів користувачів налаштовано лише дозволи для цього користувача та ніхто інший, і вони не мають права успадковувати права свого батька, або з інших причин всі дозволи файлу були втрачені. Результатом є те, що жоден обліковий запис користувача на вашому комп’ютері не має змоги нічого робити з файлом чи папкою.

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


Добрий момент щодо назви файлу! Налаштування дозволів не допомогло, але я випадково знайшов половину відповіді!
glenneroo

5

На сайті підтримки Microsoft я прочитав наступне :

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


Гарна ідея! На жаль, всі папки, які я не можу видалити, не мають короткого імені, тобто вони порожні, коли я 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, іменування файлів, шляхів та просторів імен .


Це спрацює, але я вважаю, що delкоманда має MAX_PATHмежу :(
Біллі ONeal

Гарний трюк! Я обійшов довгі імена файлів, перейменувавши каталоги на 1-2 символи. Я спробував ці команди в обох решті каталогів: Could not find file.за нимиThe system cannot find the file specified.
glenneroo

Оновлено мою відповідь. За допомогою цієї версії delя зміг видалити одного з двох правопорушників, що залишилися (які мали пробіл). Баунті за вами, але сюжет згущується!
glenneroo

У надзвичайно проблемних випадках, можливо, ви зможете видалити замість цього каталог, що містить (після переміщення матеріалів, які ви хочете зберегти).
harrymc

Дуже приємно, я мав корумповане ім’я каталогу протягом 3 років і нарешті знайшов це! Використання команди rmdir, наведеної вище, дозволило мені позбутися розбитого dir.
hazymat

2

Я особисто погоджуюся з byachna та CarlF, що linux live cd - це найкраща ставка. Linux не піклується про дозволи, тому ви можете зайти та видалити речі, не скаржачись. У мене ніколи не було проблем із написанням NTFS з Linux. Я роблю це регулярно кілька років.

Я розумію, ти не хочеш возитися з Linux, тому я запропоную щось інше. Щось, що вже запропонував Ашімема ... але забув кілька посилань. Замість linux live cd ви можете спробувати один із багатьох Windows Live CD-дисків.

http://www.ubcd4win.com/ (для створення потрібен xp встановити компакт-диск)

http://www.reatogo.de/REATOGO.htm (для створення потрібен xp встановити компакт-диск)

http://www.nu2.nu/pebuilder/ (для створення потрібен xp встановити компакт-диск)

http://www.vistape.net/index.php (для створення потрібен встановити dvd)

Спробуйте завантажуватися в будь-який інший компакт-диск, який ви вирішите використовувати та видалити папки, які викликають усі проблеми. Оскільки це вікна, він буде застосовувати дозволи файлів. Можливо, вам доведеться змінити дозволи або права власності на файли, щоб видалити їх. Повторіть спробу трюку "\? \" З компакт-диска Windows.

Інша річ, яку слід спробувати, - це команда cacls або icacls, щоб побачити, чи можете ви самі собі дозволити папки.


Спробую їх і звітуватиму (коли у мене є пару годин).
glenneroo

0

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

Змонтуйте файлову систему Windows.

Видаліть все, що завгодно, оскільки Windows не зможе сказати "Ні".

ПЕРЕД ПОВЕРНЕННЯ ЦЕ ЗРОБИТИ ПОЛУЧНУ ЗАПАСУ.


1
Дякую, але Бячна вже запропонував це. Я вагаюся, щоб спробувати, тому що у мене були проблеми з пошкодженими файловими системами в минулому. Також цей випадок стосується пошкоджених файлів, тобто використання непідтримуваного драйвера NTFS може просто повністю вимкнути мою систему.
glenneroo

Поточні драйвери NTFS в Linux насправді мають меншу ймовірність пошкодження файлових систем, ніж Windows, за моїм обмеженим досвідом.
КарлФ

3
Я дуже хотів би побачити дані, щоб створити резервну копію цього твердження. У мене ніколи не було корумпованого FS за винятком помилок обладнання.
Біллі ONeal

Є причина, по якій я написав "за своїм обмеженим досвідом". У мене виникло кілька проблем, як-от використання glenneroo під керуванням Windows (XP та Vista), і жодна з NTFS-3G. Я думав, що це відмовиться від відповідальності.
CarlF

0

Існує цілий ряд складних і складних способів вирішити це, як я з'ясував у минулому.

Тепер, коли я впевнений у тому, що я роблю, я просто запускаю chkdsk, а потім завантажую живий компакт-диск, щоб видалити файли, якщо все-таки була проблема (якщо ви переживаєте за здібності Linux з ntfs, тоді спробуйте або BartPE, або [Windows PE] [2], обидва вільно доступні)

Якщо ви збираєтеся довгий шлях, всі інші пропозиції, безумовно, допоможуть вам зменшити фактичну помилку.


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

0

Пізно до партії, але цей метод працює більшу частину часу, якщо не завантажуватись з дистрибутива Linux та видаляти звідти.

Відкрийте піднесене вікно командного рядка та залиште його відкритим.

Закрийте всі відкриті програми.

Натисніть кнопку Пуск, запустіть та введіть TASKMGR.EXE Перейдіть на вкладку «Процеси» та завершіть процес на «Explorer.exe», залиште Менеджер завдань відкритим.

Поверніться до вікна командного рядка та перейдіть до каталогу, в якому знаходиться AVI (або інший незмінний файл). У командному рядку введіть DEL <повний шлях до файлу, який ви бажаєте видалити>, або будь-яку команду, яку ви бажаєте.

Поверніться до диспетчера завдань, натисніть "Файл", "Нова задача" та введіть EXPLORER.EXE, щоб перезапустити оболонку графічного інтерфейсу. Закрити диспетчер завдань.


-1

Відповідь Джоеля наполовину права, спочатку потрібно активувати вкладку безпеки, перейти до панелі управління> параметри папок та друга вкладка (я забув її ім’я) в кінці списку з опціями є щось про розширене управління папками (знову я не знаю, як це ім’я англійською мовою) після цього ви можете встановити дозволи для свого користувача на вкладці безпеки, як згадувалося раніше.


У мене вже були включені ці варіанти, плюс я вже спробував те, що він рекомендував, але це не допомогло. Прочитайте оновлення №3 та часткове рішення про те, що відбувається. Папка, яку я не можу видалити, не має навіть властивостей, тим більше можливостей захисту.
glenneroo

Переконайтеся, що ви додали повний доступ та параметри для користувача КОЖНО, з включеною верифікатором користувача ви можете це зробити.
Гільєрмо Сіліцео Істиба
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.