Как узнать, какая программа использует файл
Обновлено: 20.11.2024
Как узнать, какой процесс блокирует файл или папку в Windows?
Например, при попытке удалить папку Windows сообщает следующее:
Действие не может быть выполнено, так как папка открыта в другой программе
То же самое происходит и с файлом, но как узнать, какая программа или приложение в данный момент его использует и мешает мне удалить файл или папку?
Как это дубликат? Он конкретно спрашивает, как узнать, какой процесс блокирует файл, а не как удалить заблокированный файл.
Я не могу добавить встроенный, более простой ответ здесь, потому что он был неправильно помечен как дубликат, и я не могу добавить его в другую ветку, потому что это относится только к XP. Но в любом случае, для версий Windows с Монитором ресурсов (введите его в строке поиска), перейдите на вкладку ЦП/Связанные дескрипторы, затем найдите файл или папку.
Представьте, что вы живете в 2021 году, и Windows до сих пор не просто сообщает вам, какой процесс использует файл, когда сообщает об ошибке.
12 ответов 12
Для команды openfiles необходимо включить поддержку локальных файлов, запустив openfiles /local и перезапустив ее.
К сожалению, openfiles не работает в 64-разрядной версии Windows: ОШИБКА: целевая система должна работать под управлением 32-разрядной ОС.
<р>. Если мы хотим перезапуститься, чтобы что-то включить, почему бы нам просто не перезапустить, чтобы получить доступ к папке? Я не понимаю, как это решило проблему OP, когда «просто перезагрузите компьютер» было бы намного проще и все равно требовало бы перезагрузки.Для этого можно использовать монитор ресурсов, встроенный в Windows 7, 8, 10 и 11!
- Откройте монитор ресурсов, который можно найти
- Выполнив поиск Resource Monitor или resmon.exe в меню "Пуск" или
- Как кнопка на вкладке "Производительность" в Диспетчере задач
- Перейти на вкладку ЦП
- Используйте поле поиска в разделе "Связанные дескрипторы"
- См. синюю стрелку на снимке экрана ниже.
Найдя дескриптор, вы можете идентифицировать процесс, взглянув на столбец Image и/или PID.
Затем вы можете попытаться закрыть приложение, как обычно, или, если это невозможно, просто щелкните правой кнопкой мыши дескриптор и уничтожьте процесс прямо оттуда. Легко!
Примечание. Монитор ресурсов не нашел связанных дескрипторов в моем случае, тогда как Process Explorer (как описано выше) нашел.
@ComFreek Что ж, во многих случаях ProcessExplorer может быть более мощным, но для меня Resource Monitor всегда обнаруживал, что приложение блокирует файл, с которым я пытаюсь что-то сделать. Я также предпочитаю его Process Explorer просто потому, что он находится прямо в ОС. Нет необходимости в дополнительной загрузке и дополнительном ярлыке.
Мне не удалось найти это в Process Explorer, но с помощью этих инструкций в Resource Manager это было легко найти. Спасибо.
@ComFreek В моем случае все было иначе: Process Explorer не нашел дескриптор, а Resource Monitor нашел.
Несколько вариантов:
Microsoft/SysInternals Process Explorer: выберите «Найти» > «Найти дескриптор или DLL». В текстовом поле «Подстрока дескриптора или DLL:» введите путь к файлу (например, «C:\path\to\file.txt») и нажмите «Поиск». Все процессы, которые имеют открытый дескриптор этого файла, должны быть перечислены.
WhoLockMe – расширение проводника, добавляющее контекстное меню
Примечание. WhoLockMe не работает с Win 10 (по крайней мере, мне не удалось зарегистрировать его ни в 32-, ни в 64-разрядной версии regsvr32.exe).
В Windows 7, если вы попытаетесь удалить заблокированный файл, в сообщении об ошибке будет указано, какой процесс заблокировал его
@GarryEnglish по какой-то причине это не всегда так. Мне просто нужно было использовать procexp, чтобы сказать мне, что блокнот ++ заблокировал папку. Windows 7 не смогла определить виновника.
@GarryEnglish- Как заявил GuiSim, это точно не всегда так, и, по моему опыту, это бывает редко.
Посмотрите на Process Explorer ( procexp.exe ).
Из введения:
Вы когда-нибудь задумывались, какая программа открывает тот или иной файл или каталог? Теперь вы можете это узнать.
Чтобы узнать, какой процесс использует конкретный файл, выполните следующие действия:
Перейдите в меню "Найти", "Найти дескриптор" или "DLL" или просто нажмите Ctrl + F .
Введите имя файла и нажмите "Поиск".
Process Explorer отобразит список всех процессов, имеющих дескриптор открытого файла.Нажмите на запись, чтобы сфокусировать процесс в главном окне.
При желании вы можете закрыть дескриптор вручную через нижнюю панель ( Ctrl + L ):
Как упоминается в другом ответе, Handle — это инструмент командной строки от SysInternals, который также выполняет эту задачу.
LockHunter может разблокировать любые обработчики, которые могли заблокировать ваши файлы или папки. В отличие от аналогичных бесплатных программ, он поддерживает как 32-, так и 64-разрядную версию Windows.
- Показывает процессы, блокирующие файл или папку.
- Позволяет разблокировать, удалить, скопировать или переименовать заблокированный файл.
- Позволяет завершить процесс блокировки.
- Позволяет удалить блокирующие процессы с жесткого диска.
- Интегрируется в меню Проводника.
- Он удаляет файлы в корзину, поэтому вы можете восстановить их, если они были удалены по ошибке.
- Поддерживает как 32-, так и 64-разрядную версию Windows.
Два лучших ответа мне не подошли, а следующие, за которые проголосовали, были либо заблокированы моим брандмауэром, либо мой хром предупредил, чтобы они не переходили!. LockHunter работал отлично.
Через 2 часа сработало только это!! Спасибо. PD: Почему окна делают это? Вот почему современные разработки не используют окна.
EMCO UnlockIT может идентифицировать процесс, который заблокировал файл, а также разблокировать файл, чтобы вы могли удалить, отредактировать или переместить его. Программа полностью бесплатна, хотя более новая версия немного медленнее и более раздута, чем оригинал (который имел простой графический интерфейс без скинов, но загружался почти мгновенно и без надоедливой заставки). Кроме того, исходная версия автоматически всплывала всякий раз, когда возникала упомянутая вами ошибка, что позволяло вам мгновенно разблокировать файл и выполнить операцию, которую вы пытались выполнить.
Тем не менее, UnlockIT — невероятно полезная программа, предоставляющая базовые функции, которых критически не хватает в Windows. Это один из стандартных наборов утилит, которые я устанавливаю на все компьютеры Windows, с которыми работаю.
@John: Ну, это идентифицирует программу, которая заблокировала файл. И вы все еще можете вручную убить процесс через диспетчер задач. Тем не менее, обычно проще просто разблокировать файл (особенно когда проводник блокирует файл большую часть времени) вместо того, чтобы убивать процесс, который его заблокировал (обычно из-за доступа к файлу и оставления обработчика файла открытым из-за сбоя программы).
Многие программы здесь устарели. В конце концов я остановился на OpenedFilesView от nirsoft, который работал очень хорошо.
Хотя лучшая часть — это интеграция с меню проводника, которую легко включить. Согласно веб-сайту
Контекстное меню проводника
Начиная с версии 1.10 вы можете запускать OpenedFilesView непосредственно из проводника Windows и просматривать только дескрипторы файла или папки, которые хотите проверить. Чтобы включить эту функцию, установите флажок «Включить контекстное меню проводника» в меню «Параметры». После включения этой функции вы можете щелкнуть правой кнопкой мыши любой файл или папку в проводнике Windows и выбрать в меню пункт «OpenedFilesView». Если вы запустите опцию OpenedFilesView для папки, она отобразит все открытые файлы внутри этой папки. Если вы запустите параметр OpenedFilesView для файла, он отобразит все открытые дескрипторы для этого файла.
При попытке удалить, переместить или переименовать файл или папку вы получите предупреждающее сообщение Windows; операционная система отказывается выполнять операцию.
Эта статья помогает определить процесс, который в настоящее время имеет дескриптор файла или папки, над которыми вы пытаетесь выполнить операцию обслуживания.
Симптомы
При попытке удалить, переместить или переименовать файл вы получаете системное предупреждение Windows:
- "Невозможно удалить файл: доступ запрещен".
- "Произошло нарушение совместного доступа".
- "Возможно, используется исходный или конечный файл".
- "Файл используется другой программой или пользователем".
- "Убедитесь, что диск не заполнен и не защищен от записи, а файл в данный момент не используется".
Как решить проблему
Один из самых простых способов справиться с заблокированными файлами или папками — использовать Microsoft Sysinternals Process Explorer.
Определить, какая программа использует файл
С помощью Process Explorer есть простой способ найти программу:
- Откройте обозреватель процессов
- Запуск от имени администратора.
- На панели инструментов найдите справа значок прицела.
- Перетащите значок на заблокированный открытый файл или папку.
- Исполняемый файл, использующий файл, будет выделен в основном списке отображения Process Explorer. ол>р>
- Откройте обозреватель процессов
- Запуск от имени администратора.
- Введите сочетание клавиш Ctrl+F.
- Можно также открыть меню "Найти" и выбрать "Найти дескриптор или DLL".
- Откроется диалоговое окно поиска.
- Введите имя заблокированного файла или другого интересующего файла.
- Частичных имен обычно достаточно.
- Нажмите кнопку "Поиск".
- Будет создан список.
- Записей может быть несколько.
- Проверьте процесс, блокирующий файл, с помощью монитора ресурсов.
- Используйте SysInternals Process Explorer, чтобы определить процесс, блокирующий файл.
- Узнайте об этом через командную строку с помощью инструмента "Диспетчер".
- Используйте бесплатное ПО OpenedFilesView, чтобы определить процесс, содержащий файл.
Определить, какой дескриптор или DLL использует файл
Снять блокировку с файла или папки
Чтобы снять блокировку с файла, над которым вы пытаетесь выполнить операцию обслуживания, вам нужно будет завершить соответствующий процесс. Отдельная программа или дескриптор в списке, предоставленном Process Explorer, могут быть уничтожены:
Действуйте осторожно при удалении меток, так как это может привести к неустойчивому поведению и нестабильности.
Невозможно удалить или переместить или выполнить какое-либо действие с файлом, поскольку он заблокирован процессом? Узнайте, какой процесс блокирует файл в Windows 11/10, используя различные методы, описанные в этой статье.
Много раз, когда мы пытаемся выполнить действие (удалить, переименовать, скопировать и т. д.) с файлом, мы получаем диалоговое окно "Файл используется" с сообщением о том, что "Действие не может быть выполнено, поскольку файл открыт в другой программе». В некоторых случаях он покажет имя процесса или программы, использующей файл. Но во многих случаях это не так.
Теперь как определить, в каком процессе открыт файл? Если это срочно, вам нужно определить процесс, блокирующий файл, а затем завершить процесс, чтобы изменить целевой файл. В этом руководстве мы обсудим различные методы проверки процесса, содержащего файл в Windows 11/10.
Как определить, какой процесс блокирует или использует файл в Windows 11/10
А теперь подробнее об этих методах.
1] Проверьте процесс, блокирующий файл, с помощью монитора ресурсов
Используя Resource Monitor, вы можете определить процесс или службу, блокирующие файл. Это встроенная в Windows 10 утилита, которая помогает отслеживать загрузку ЦП, памяти, дисковую сеть, дескрипторы файлов и т. д.
Откройте приложение Выполнить, нажав горячую клавишу Windows + R, а затем введите в нем resmon. Нажмите кнопку OK, и откроется Монитор ресурсов.
В окне Resource Monitor перейдите на вкладку CPU и разверните параметр Associated Handles. Теперь в поле поиска введите имя файла, который отображается заблокированным процессом, и нажмите кнопку «Ввод». Он покажет вам список процессов, содержащих целевой файл.
Вы можете щелкнуть процесс правой кнопкой мыши и выбрать параметр "Завершить процесс", чтобы завершить его. После завершения процесса попробуйте выполнить нужное действие с ранее заблокированным файлом.
2] Используйте SysInternals Process Explorer, чтобы определить процесс, блокирующий файл
Еще один способ определить процесс или службу, в которой хранится файл, — SysInternals Process Explorer. Это расширенная утилита для получения подробной информации о запущенных процессах в вашей системе. Чтобы определить процесс, через который проходит файл, вы можете выполнить следующие шаги:
Во-первых, загрузите и запустите SysInternals Process Explorer на своем ПК. Теперь в окне Process Explorer перейдите в меню «Файл» и выберите параметр «Найти дескриптор или DLL». Затем введите имя файла в диалоговом окне Process Explorer Search и нажмите кнопку поиска. В результатах будут показаны все процессы, использующие введенный вами файл.
Щелкните правой кнопкой мыши указанный процесс на вкладке "Процесс" и закройте его.
Теперь проверьте файл, удерживается ли он или заблокирован процессом или нет.
3] Узнайте через командную строку с помощью инструмента «Ручка»
Handle – это командная утилита, позволяющая определить, в каком процессе открыт файл. По сути, это версия командной строки рассмотренного выше SysInternals Process Explorer. Вы можете выполнить следующие шаги, чтобы проверить процесс, содержащий файл в командной строке, с помощью этого инструмента:
Когда вы вводите команду, она отображает список процессов, содержащих файл, с идентификатором процесса и именем пользователя.
Я попытался проверить то же самое, введя только имя файла без полного пути, это сработало. Но это может работать не для всех файлов. Поэтому рекомендуется ввести местоположение заблокированного файла.
После идентификации процесса его можно закрыть из диспетчера задач.
4] Используйте бесплатное ПО OpenedFilesView для идентификации процесса, содержащего файл
OpenedFilesView – это портативное приложение для просмотра всех открытых файлов и процессов, в которых они хранятся. Вы можете загрузить его ZIP-архив, извлечь его, а затем запустить его файл OpenedFilesView.exe, чтобы запустить его интерфейс. Затем он отобразит все открытые в данный момент файлы с соответствующими сведениями, включая имя процесса, идентификатор процесса, путь к процессу, права доступа к файлу, путь к целевому файлу и т. д.
Найдите целевой файл и проверьте, какой процесс его удерживает. Кроме того, вы можете использовать функцию «Найти» для быстрого поиска заблокированного файла и связанного с ним процесса. Найдя процесс, щелкните файл правой кнопкой мыши и закройте все процессы, содержащие его.
Надеемся, что это руководство поможет вам определить процесс удержания файла и последующего его закрытия.
Если вы пытаетесь изменить/удалить какой-либо конкретный файл на своем компьютере, но появляется сообщение об ошибке, в котором говорится: «Действие не может быть выполнено, поскольку папка открыта в другой программе», вы не можете удалить/изменить файл без остановки другой программы, которая его использует. Некоторые пользователи Windows 10 или Windows 11: Выполните процессы, описанные в этой статье, чтобы узнать, какой процесс «блокирует» файл на вашем компьютере, остановите процесс, и вы сможете снова изменить/удалить файл на своем компьютере.< /p>
Пример–
С нашей стороны, мы попытались удалить «adobe» из папки Temp, но вернули сообщение об ошибке: «Действие не может быть выполнено, так как файл открыт в Adobe Genuine Служба целостности программного обеспечения».
В обоих методах, описанных ниже, мы будем использовать этот случай.
Метод-1. Используйте Resource Monitor для обнаружения и завершения процесса-
В окне Монитор ресурсов вы можете определить, какое приложение или дескриптор службы содержит конкретный файл, чтобы вы могли легко завершить процесс оттуда.
<р>1. Нажмите клавишу Windows + R, чтобы открыть окно Выполнить на вашем компьютере. В окне Выполнить введите «resmon» и нажмите Enter. На вашем компьютере откроется окноМонитор ресурсов.
<р>2. В окне Монитор ресурсов перейдите на вкладку "ЦП".
<р>3. Теперь разверните «Связанные дескрипторы», а затем в поле поиска введите имя файла, с которым у вас возникла проблема (для нас это будет «adobegc»), а затем нажмите синюю стрелку в в том же поле, чтобы увидеть связанные дескрипторы этого файла. <р>4. Вы увидите связанные дескрипторы для файла на вкладке Связанные дескрипторы. Нажмите правой кнопкой мыши процесс, который блокирует файл, а затем нажмите «Завершить процесс», чтобы завершить процесс на вашем компьютере.
После завершения конкретной службы попробуйте снова изменить/удалить файл. На этот раз у вас это получится. Если у вас возникнут дальнейшие проблемы, воспользуйтесь вторым способом.
Метод 2. Использование Process Explorer-
Обозреватель процессов – это инструмент от Microsoft, который очень полезен для обнаружения связанных процессов, содержащих какую-либо конкретную службу на вашем компьютере.
<р>1. Загрузите Process Explorer на свой компьютер. <р>2. После загрузки zip-файла перейдите в загруженное место.Извлеките загруженный ZIP-файл «ProcessExplorer» в любое место по вашему выбору.<р>3. Теперь перейдите на сайт извлечения на вашем компьютере. Дважды щелкните «procexp64», чтобы запустить его на своем компьютере (в случае, если вы используете 32-разрядную Windows 10, вы должны запустить «procexp» на своем компьютере).
<р>4. В окне Process Explorer нажмите «Найти» в строке меню, а затем нажмите «Найти дескриптор или DLL…» на своем компьютере.
Подождите некоторое время, пока Process Explorer найдет процессы, связанные с введенной вами строкой.
<р>5. В окне Поиск в Process Explorer введите строку поиска рядом с «Подстрока дескриптора или DLL:», а затем нажмите «Поиск» рядом с полем поиска. <р>6. Подождите некоторое время, пока Проводник процессов отобразит список процессов, использующих файл. По завершении поиска щелкните процесс на вкладке процессов.Следующий процесс будет выделен в окне Process Explorer.
<р>7. В окне Process Explorer щелкните правой кнопкой мыши выделенный процесс, а затем нажмите «Закрыть дескриптор», чтобы закрыть процесс на вашем компьютере.
После закрытия процесса закройте окно Process Explorer на своем компьютере.
Вот оно! Теперь вы можете легко изменить/удалить файл на своем компьютере. Ваша проблема должна быть решена.
Самбит — инженер-механик по квалификации, который любит писать о Windows 10 и решениях самых странных проблем.
Читайте также: