Як видалити папку, яка використовується?


134

Іноді під час роботи в Windows я отримую таке підказку, коли намагаюся видалити каталог:

Folder In Use
The action can't be completed because the folder is open in another program
Close the folder and try again.

Однак папка взагалі "не використовується", і я не відкриваю її. Тож як я можу видалити його після перезавантаження?


2
Я вважаю, що це відбувається найчастіше під час роботи з файлами Outlook та .msg, і в цьому випадку закриття Outlook зупиняє помилку "Папка у використанні". Дивіться також обговорення цього питання спільноти Microsoft .
Повітря

Відповіді:


82

Ця відповідь стара, але, здається, все ще отримує трафік. Як зазначено нижче, зараз у Windows є вбудований інструмент:

Початок → Усі програми → Аксесуари → Системні інструменти → Монітор ресурсів (або Запуск resmon.exe)

Ви можете отримати більше інформації у відповідях нижче цієї. Решта цієї відповіді вже не є такою актуальною.


Провідник процесів від Sysinternals дозволить здійснювати пошук через ручки та DLL. Знайдіть каталог і з’ясуйте, який процес "використовує" папку.

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


4
Але як я знайти каталог, який використовується процесом?
Johnny_D

2
Використовуйте Ctrl-F і введіть ім'я папки вище тієї, яку ви намагаєтесь видалити.
МайкМурко

4
Зараз існує рідний графічний інтерфейс для Windows, мою відповідь див. Нижче.
bcorso

3
* Рідний графічний інтерфейс / вбудований в / Windows (Монітор ресурсів) див. Нижче.
Джеймі Пате

У моєму випадку Провідник процесів не зміг знайти ручку, але Монітор ресурсів (див. Іншу відповідь) був здатний.
Барт Веркойєн

181

Існує рідний графічний інтерфейс для Windows:

Початок >> Усі програми >> Аксесуари >> Системні інструменти >> Монітор ресурсів (або Запуск resmon.exe )

Ви можете шукати "Асоційовані ручки" за допомогою вікна пошуку (обведеного червоним кольором) та клацніть правою кнопкою миші процес, який ви хочете закінчити.


Як приклад, на зображенні нижче я не зміг видалити каталог Eclipse. Пошук ручок, пов'язаних із Eclipse, показав, що adb.exe мав ручку до каталогу. Закінчивши процес adb, я міг би видалити каталог Eclipse.

введіть тут опис зображення


5
Ця хитрість підкреслила процес, який
доставляв

2
Монітор ресурсів вимагає облікових даних адміністратора.
Повітря

У мене на робочому столі заблокована папка, в якій монітор ресурсів не відображається як використаний. Ну добре.
sirdank

заблокований? Це для вирішення конкретної помилки у питанні, тобто "папка відкрита в іншій програмі". Це ваша ситуація?
bcorso

1
Вирішили проблему для мене.
RubenGeert

8

Unlocker та WhoLockMe не працюють у 64-бітних Windows. Я використовую LockHunter .


2
Unlocker поставляється для 64-бітної системи.
avirk

lockhunter знайшов для мене процес блокування, який і ProcExp, і ResMon не змогли знайти.
Розумний Людина

7

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

Безпечніше спробувати спочатку вимкнути програми, а не просто змушувати ручку закривати.


Добре стаття. Важливе прочитання.
Pacerier

6

Цей скрипт REG надасть вам пункт контекстного меню "Переглянути ручки", який викликає утиліту обробки Sysinternals, щоб побачити всі відкриті ручки до файлу чи папки, на яку ви натиснули правою кнопкою.

Помістіть handle.exe від Sysinternals у місце, яке можна отримати з вашого шляху.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\Handle]
@="View &Handles"

[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\Handle\command]
@="cmd.exe /k handle -a -u \"%1\""

Чому б просто не використовувати версію інтерфейсу ProcessExplorer?
Pacerier

5

У мене це траплялося. Іноді я можу вирішити проблему, спочатку видаливши вміст, потім папку (порожню).


Так - це працювало для мене!
TigerTiger

@Wbdvlpr, @ kpoehls, навіщо це працювати? Я думаю, що це просто міф, і вам пощастило.
Pacerier

3

Найшвидший і найпростіший підхід - використовувати Handle , як згадує slolife, а не використовувати Process Explorer. Вони обоє з Марка Русиновича @ Microsoft.

Не дивуйтеся, коли виясните, що Explor.exe є винуватцем, як я це зробив сьогодні. Мабуть, існує офіційний спосіб перезапустити explorer.exe, але я, здається, відволікаюсь від його вбивства і запускаю його знову резервне копіювання в диспетчері завдань.


2

Коли я був на XP, я використовував WhoLockMe, щоб дізнатися, у яких програмах були відкриті та заблоковані файли. Найновіша версія, яку я міг знайти, не згадує Vista, але варто її зняти.

Іноді їх можна видалити зсередини назовні вручну. Просто перейдіть по ієрархії до кінця, видаліть усі файли, перемістіть каталог і повторіть. Не впевнений, чому Windows не може цього зробити самостійно, але іноді це працює для мене.


2

Якщо під "не використовується", ви маєте на увазі, що до нього немає відкритих ручок, тоді переконайтеся, що послуга " Досвід застосування" не відключена . Якщо так, встановіть його вручну:

Run dialog (or command prompt):

  sc config AeLookupSvc start= demand

2

Я використовую Handle від SysInternals (зараз Microsoft). Ви можете ввести частину імені папки, щоб побачити, який процес має ручку в цій папці, а потім вбити ручку.

handle64.exe -nobanner "<path>"

Наприклад:

вихід команди з командного рядка

Як і інші згадували, вбивство ручки може спричинити серйозні проблеми.


1

У мене була така ж проблема зі спалахом пам'яті (16 гбіт. - мабуть, неактуально), і це не дозволило мені видалити папку. Я спробував кожне рішення, знайдене в Інтернеті, (заховання ескізів, видалення папки із запиту cmd із закриттямr.exe, все ..), і нічого не вийшло. Що змусило його працювати? Ну ось це:

  1. Виберіть усі файли всередині папки
  2. Клацніть правою кнопкою миші на них та виберіть "Вирізати"
  3. Поверніться до кореневої папки
  4. Вставте їх
  5. Видаліть їх

Це працювало для мене просто чудово. Сподіваюся, я допоміг. :-)


1

Для того, щоб видалити папку / програму, яка говорить, що ви не можете її видалити, оскільки вона відкрита десь в іншому місці.

  • Натисніть кнопку "Пуск"
  • Тип Taskmgr
  • У новому вікні, що відкрилося, на вкладці "процес" знайдіть папку / програму, яку ви намагаєтесь видалити.
  • Клацніть правою кнопкою миші та завершіть завдання
  • Поверніться до місця папки / програми, і ви зможете її видалити зараз

0

Спробуйте Ctrl+ Shift+ Esc> "програми", потім клацніть правою кнопкою миші ту, яку ви хочете деактивувати, та виберіть деактивувати. Потім видаліть його ще раз!

(Моя ОС шведською мовою, тож переклади можуть бути не однаковими! Але ви їх розумієте!)


0

Часто ручка, що заблокована, - це Internet Explorer, я або закриваю її в диспетчері завдань, потім видаляю файл або папку або закриваю Explorer ... часто в папці є відкритий файл txt, і це буде перемогла ручка ' t дозвольте видалити папки / файли ... просто закрийте файл txt, і тоді у вас повинно бути добре, тепер ви можете видалити папку ур.


Чому я заблокував локальні файли і чому .txt?
gronostaj

0

Мав файл docs.zip у використанні WinSCP.

  1. Я створив новий файл, використовуючи однойменну docs.zip
  2. Вставлено над існуючим docs.zip і старий файл замінили на новий той же названий файл.
  3. Потім я видалив щойно скопійований файл docs.zip разом.

Щасти


0

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

Я використовував Python. Я знаю, я знаю, він не є рідним для Windows, але це дуже поширена утиліта для sysadmins, розробників та супер користувачів, і ви можете вибити це за допомогою простого oneliner:

from shutil import rmtree; rmtree('C:\path\to\folder')

... бінго-банго.


-1
  1. Знайдіть файл, який потрібно видалити.

  2. Перейменуйте його на все, що вам подобається.

  3. Видаліть його.


2
Ця відповідь не спрацює. Якщо використовується файл або каталог, ви не можете його перейменувати.
DavidPostill

-2

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

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