Узнайте, какой процесс блокирует файл или папку в Windows

749740
leeand00

Как я могу узнать, какой процесс блокирует файл или папку в Windows?

Например, при попытке удалить папку Windows сообщает об этом:

Действие не может быть завершено, потому что папка открыта в другой программе

Происходит то же самое с файлом, но как мне узнать, какая программа или приложение использует его в настоящее время и не позволяет мне удалить файл или папку?

563
Дубликат: http://superuser.com/questions/13291/how-do-i-delete-a-locked-file heavyd 14 лет назад 2
См. [Этот вопрос по ServerFault] (http://serverfault.com/questions/1966/how-do-you-find-what-process-is-holding-a-file-open-in-windows/). John Fouhy 15 лет назад 4
Является ли ваш файл видео? Вы можете обнаружить, что Windows Explorer сам "использует" файл ... DisgruntledGoat 12 лет назад 1
Как это дубликат? Он * специально * спрашивает, как узнать, какой процесс блокирует файл, а не как удалить заблокированный файл. b1nary.atr0phy 9 лет назад 26
Я не могу добавить встроенный, более простой ответ, потому что он был неправильно помечен как дублирование, и я не могу добавить его в другой поток, потому что это относится только к XP. Но в любом случае, для версий Windows с Resource Monitor (введите его в строке поиска), перейдите на вкладку CPU / Associated Handles, а затем найдите файл или папку. jontyc 9 лет назад 8
Я узнал, что в Windows 10 (и я предполагаю, что уже в Windows 7) есть программа под названием Resource Monitor, которая позволяет увидеть, какие процессы блокируют файл или папку: http://stackoverflow.com/a/24126882/470749 Ryan 8 лет назад 0

9 ответов на вопрос

489
Svish

For Windows 7, 8 and 10 you can use the built-in Resource Monitor for this.

  1. Open Resource Monitor, which can be found
    • By searching for resmon.exe in the start menu, or
    • As a button on the Performance tab in your Task Manager
  2. Open the CPU tab and use the search field in the Associated Handles section
    • Pointed at by blue arrow in screen shot below

In case it's not obvious, when you've found the handle, you can identify the process by looking at the Image and/or PID column.

You can then close the application if you are able to do that, or just right-click the row and you'll get the option of killing the process right there. Easy peasy!

Resource Monitor screenshot

Примечание. Монитор ресурсов не обнаружил никаких связанных дескрипторов в моем случае, тогда как Process Explorer (как [описано выше] (http://superuser.com/a/399660/137286)) обнаружил. ComFreek 10 лет назад 15
@ComFreek Ну, ProcessExplorer может быть более мощным во многих случаях, но для меня Resource Monitor всегда находил приложение, блокирующее файл, с которым я пытаюсь что-то сделать. Я также предпочитаю его Process Explorer просто потому, что он прямо там, в ОС. Нет необходимости в дополнительной загрузке и дополнительном ярлыке где-либо. Svish 10 лет назад 13
Я не смог найти это в Process Explorer, но было легко найти эти инструкции в Resource Manager. Благодарю. Tatiana Racheva 10 лет назад 5
@ComFreek В моем случае это был просто другой случай: Process Explorer не нашел дескриптор, в то время как Resource Monitor сделал. Uwe Keim 8 лет назад 5
Я попытался завершить процесс, и мне сказали: «При попытке выполнить команду произошла следующая системная ошибка: доступ запрещен». У меня был Resource Monitor, работающий от имени администратора. Shaun Luttin 8 лет назад 0
+1 - это также отлично работает на Windows 10 Matt Innes 8 лет назад 6
Для меня это была настоящая папка, которая была заблокирована. Монитор ресурсов поиска по имени папки дал мне представить себе результат, и по окончании этого процесса был разблокирован файл folde.r joey 7 лет назад 0
@ComFreek Для меня все было наоборот. Т.е. Process Explorer ничего не нашел, тогда как Resource Monitor нашел. Я использую Windows 10. Miscreant 7 лет назад 1
Работает для меня. Так как моя ошибка была связана с питоном, я должен был избавиться от двойной обратной косой черты, чтобы соответствовать критериям поиска Window. moondra 6 лет назад 0
Кажется, не работает для заблокированных папок Hack-R 6 лет назад 0
@Svish, что делать, если файл заблокирован процессом, запущенным на другом компьютере в локальной сети? Ant_222 6 лет назад 0
@ Ant_222 Я не знаю? Убить связь? Отправить сигнал летучей мыши? Svish 6 лет назад 0
374
Shevek

Пара вариантов:

Microsoft / SysInternals Process Explorer - выберите «Найти»> «Найти дескриптор» или «DLL». В текстовом поле «Обрабатывать или подстрока DLL:» введите путь к файлу (например, «C: \ path \ to \ file.txt») и нажмите «Поиск». Все процессы, которые имеют открытый дескриптор этого файла, должны быть перечислены.

WhoLockMe - расширение для проводника, которое добавляет опцию контекстного меню

NB WhoLockMe по- видимому, не работает с Win 10 ( по крайней мере, я не смог зарегистрировать его с любым из 32- или 64-разрядных версий regsvr32.exe).

В Windows 7, если вы попытаетесь удалить заблокированный файл, в сообщении об ошибке будет указано, для какого процесса он заблокирован. Garry English 12 лет назад 26
ПРИМЕЧАНИЕ: Unlocker устанавливает Adware, если вы не будете осторожны. С их сайта: «Рекламная функция: полностью дополнительная панель инструментов Delta». Julian Knight 10 лет назад 9
@GarryEnglish по некоторым причинам это не всегда так. Мне просто нужно было использовать procxp, чтобы сказать, что у notepad ++ была блокировка папки. Windows 7 не смогла сказать мне виновника. GuiSim 10 лет назад 11
WhoLockMe заявляет, что это для Win NT в XP. Работает ли на более высоком? jpmc26 10 лет назад 0
@ jpmc26 Понятия не имею .. Я перестал использовать его в пользу Unlocker, который имеет более приятный интерфейс IMHO. Unlocker был в моем первоначальном ответе, но был отредактирован, потому что позже в программу установки было добавлено рекламное ПО. Shevek 10 лет назад 1
@ jpmc26 Нет. WhoLockMe не работает в Windows 7. ceving 9 лет назад 4
К вашему сведению, я использую процесс хакера. Я нашел пользователя для поиска кнопки Ручка сейчас! Это идентифицировало свернутое окно cmd в трей, которое я открыл в папке, которая его блокировала. Спасибо за чаевые! SheldonH 9 лет назад 0
Первая ссылка выглядит как сломанная, а вторая не выглядит так, как будто она работает в Windows 10 Serj Sagan 9 лет назад 0
@ GarryEnglish - Как заявляет GuiSim, это точно не всегда так, и, по моему опыту, так бывает редко. dgo 9 лет назад 3
Powershell будет быстрее, менее раздутым, чем предложения всех этих приложений, см. Https://beamusupscotty.wordpress.com/2012/11/14/use-powershell-to-find-out-which-process-locks-a-file / abourget 8 лет назад 0
@abourget - почему бы не добавить это как альтернативный ответ Shevek 8 лет назад 1
было бы неплохо, если бы в ответе вы также объяснили, что wholockedme не работает на windows 7! davejal 7 лет назад 0
@ davejal Я понятия не имею, с какими операционными системами работает wholockedme, поскольку я никогда не слышал об этом и даже не упомянул об этом в своем ответе. WhoLockMe, с другой стороны, прекрасно работает на Win7 Shevek 7 лет назад 0
Следует отметить, что проводник процессов должен запускаться от имени администратора. Запустил его на Windows 10 как обычный пользователь, и он не работал. Devolus 7 лет назад 0
по электронной почте Ой! Этот комментарий был предназначен для другого ответа ... :) not2qubit 5 лет назад 0
184
Eroen

Посмотрите на Process Explorer ( procexp.exe).

Из его введения:

Задумывались ли вы, какая программа имеет определенный файл или каталог открыт? Теперь вы можете узнать.

Чтобы узнать, какой процесс использует определенный файл, выполните следующие действия:

  1. Зайдите в Find, Find Handle или DLL .. или просто нажмите Ctrl+ F.

    Enter image description here

  2. Введите имя файла и нажмите Поиск .

    Enter image description here

  3. Process Explorer перечислит все процессы, которые имеют дескриптор открытого файла. Нажмите на запись, чтобы сфокусировать процесс в главном окне.

    Enter image description here

  4. При желании вы можете даже закрыть ручку вручную через нижнюю панель ( Ctrl+ L):

    Enter image description here

Process Hacker также может это сделать. Benoit 12 лет назад 6
Как [другой ответ] (http://superuser.com/a/6614/820) упоминает, [Обрабатывать] (http://technet.microsoft.com/en-us/sysinternals/bb896655.aspx) является командной строкой инструмент от SysInternals, который также выполнит эту задачу. heavyd 10 лет назад 4
Я забыл открыть процесс cmd в папке, проводник процессов помог мне заметить это. davejal 7 лет назад 0
Примечание для Google, текущая версия PE больше не поддерживает ** Close Handle ** MickyD 6 лет назад 0
Не удалось работать в Win10 64-bit 1709 K7AAY 6 лет назад 0
`handle` не работает должным образом (Win81). Воспроизведите: откройте какой-нибудь файл в редакторе, например, `nano some.py`, затем попробуйте:` handle.exe -nobanner some.py` и получите: ** `Не найдено подходящих дескрипторов` **. not2qubit 5 лет назад 0
39
frank

Метод PowerShell:

IF((Test-Path -Path $FileOrFolderPath) -eq $false) { Write-Warning "File or directory does not exist."  } Else { $LockingProcess = CMD /C "openfiles /query /fo table | find /I ""$FileOrFolderPath""" Write-Host $LockingProcess } 

В openfilesкоманде должна быть включена поддержка локальных файлов при запуске openfiles /local onи перезапуске.

Подробнее Как узнать, какой процесс блокирует файл или папку в Windows

По какой-то причине это просто вернуло мне пустую строку. Я тоже запускал PS ISE в режиме администратора. Dib 7 лет назад 0
Эта функция должна быть сначала включена с помощью `openfiles / local on` mstrange 7 лет назад 8
К сожалению, `openfiles`, похоже, не работает на 64-битной Windows:` ERROR: на целевой системе должна быть установлена ​​32-битная ОС`. Thomas S. 6 лет назад 4
У меня работает на Win10 64 Michael 6 лет назад 0
Выполнение этого дало мне ту же ошибку «Доступ запрещен», которую я получал изначально, а затем всегда выводил сообщение об ошибке «Не существует». Однако приведенный ниже ответ дал мне необходимую информацию: IIS блокировал каталог, который мне нужно было изменить. Chris Thompson 6 лет назад 0
Похоже, что вы можете добиться этого в чистом cmd с помощью `openfiles / query / fo table | найти / я«`? mwfearnley 6 лет назад 0
23
Mehper C. Palavuzlar

LockHunter может разблокировать любые обработчики, которые могли заблокировать ваши файлы или папки. В отличие от аналогичных бесплатных программ, он поддерживает как 32-разрядные, так и 64-разрядные версии Windows.

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

  • Показывает процессы, блокирующие файл или папку
  • Позволяет разблокировать, удалить, скопировать или переименовать заблокированный файл
  • Позволяет убить процесс блокировки
  • Позволяет удалить процессы блокировки с жесткого диска
  • Интегрируется в меню Проводника
  • Он удаляет файлы в корзину, поэтому вы можете восстановить их, если удалили по ошибке
  • Поддерживает как 32, так и 64-битную Windows
Лучшие два ответа не сработали, а следующие, за которые проголосовали, были либо заблокированы моим брандмауэром, либо предупреждены о том, что мой хром не может перейти к ним !. LockHunter работал отлично. user3885927 8 лет назад 2
Охотник на удачу работал на меня, когда другие не SheldonH 7 лет назад 1
10
Lèse majesté

EMCO UnlockIT может идентифицировать процесс, который заблокировал файл, а также разблокировать файл, чтобы вы могли удалить / отредактировать / переместить его. Программа полностью бесплатна, хотя более новая версия немного медленнее и более раздутая, чем оригинал (который имел простой, некорпорированный графический интерфейс, но загружался практически мгновенно и без раздражающего заставки). Кроме того, исходная версия использовалась для автоматического всплывающего сообщения при возникновении упомянутой ошибки, что позволяет мгновенно разблокировать файл и выполнить операцию, которую вы пытались выполнить.

Тем не менее, UnlockIT - невероятно полезная программа, которая предоставляет базовую функциональность, которая критически отсутствует в Windows. Это один из стандартных наборов утилит, который я устанавливаю на все компьютеры с Windows, на которых работаю.

@Джон: Ну, он идентифицирует программу, которая заблокировала файл. И вы все равно можете вручную убить процесс через диспетчер задач. Однако обычно проще просто разблокировать файл (особенно если это проводник, который блокировал файл большую часть времени) вместо того, чтобы уничтожить процесс, который заблокировал его (обычно из-за обращения к файлу и оставления обработчика файла открытым из-за глюка программы). Lèse majesté 12 лет назад 0
2
formerly frustrated excel user

Здесь было мое открытие и решение.

Кстати, ни один из вышеперечисленных ответов не решил мою проблему.

Я даже пытался использовать UNLOCKER, который оказался бесполезным.

У меня проблема была с Memeo Autosync Backup

По-видимому, этот процесс резервного копирования оставляет достаточно «призрачного файла». Этот «призрачный файл» будет появляться всякий раз, когда я буду ALT-TAB на моем компьютере (Windows Professional XP), то есть я вижу, что ДВА ПРОГРАММЫ MS Excel работают, когда у меня только ОДНА видимая, на моей панели задач.

Я столкнулся с этим решением, когда подумал, что это может быть защита от вирусов SYMANTEC Endpoint (Anti-Virus); и отключил программу. Тем не менее, я продолжал получать сообщение об ошибке:

невозможно удалить (файл LARGE.xls): он используется другим человеком или программой. Закройте все программы, которые могут использовать этот файл, и повторите попытку.

Впоследствии я продолжал видеть уведомление Memeo о «синхронизации» и выход из программы.

Впоследствии НЕТ ОШИБКИ.

Для вас это может быть ЛЮБОЙ из этих фоновых сейвов.

2
Rajesh

If you do not know the program the file it is using then you can go to My Computer; right click; select Manage. Under System Tools > Shared folders > Open Files, you should be able to see the user who has locked the file. You can close file from here and then you can perform the task of rename or delete the file. Hope this helps

Это будет работать только для общих папок. sweetfa 11 лет назад 1
1
Stu

Additional possibility, just to save people the time I just spent:

In older versions of Windows, you might get "Access Denied - you might not have rights, or the file might be in use". If you find through Process Explorer that the files are, in fact, not opened by anyone, odds are that there is an issue with security. Using an administrator account, select the files in Explorer, right-click and select Properties, Security, Advanced, Owner. Odds are that the files are owned by an account that no longer exists or can no longer be verified to exist (because of changing Active Directory trust settings).

Change ownership to Administrators and you are good to go.