Узнайте, какой процесс блокирует файл или папку в Windows
Как я могу узнать, какой процесс блокирует файл или папку в Windows?
Например, при попытке удалить папку Windows сообщает об этом:
Действие не может быть завершено, потому что папка открыта в другой программе
Происходит то же самое с файлом, но как мне узнать, какая программа или приложение использует его в настоящее время и не позволяет мне удалить файл или папку?
Является ли ваш файл видео? Вы можете обнаружить, что Windows Explorer сам «использует» файл .
Как это дубликат? Он специально спрашивает, как узнать, какой процесс блокирует файл, а не как удалить заблокированный файл.
Я не могу добавить встроенный, более простой ответ, потому что он был неправильно помечен как дублирование, и я не могу добавить его в другой поток, потому что это относится только к XP. Но в любом случае, для версий Windows с Resource Monitor (введите его в строке поиска), перейдите на вкладку CPU / Associated Handles, а затем найдите файл или папку.
Я узнал, что в Windows 10 (и я предполагаю, что уже в Windows 7) есть программа под названием Resource Monitor, которая позволяет увидеть, какие процессы блокируют файл или папку: stackoverflow.com/a/24126882/470749
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 и перезапуске.
Функция должна быть сначала включена с openfiles /local on
К сожалению, openfiles кажется, не работает на 64-битной Windows: ERROR: The target system must be running a 32 bit OS.
Работает на Win10 64 для меня
Похоже, вы могли бы добиться этого в чистом cmd с openfiles /query /fo table | find /I «
. Если мы хотим перезапустить, чтобы включить что-то, почему бы нам просто не перезапустить, чтобы получить доступ к папке? Я не понимаю, как это решило проблему OP, когда «просто перезагрузить компьютер» было бы намного проще и все же потребовать перезагрузки.
Для этого вы можете использовать Resource Monitor, который встроен в Windows 7, 8 и 10.
- Откройте Resource Monitor , который можно найти
- Выполнив поиск Resource Monitor или resmon.exe в меню «Пуск», или
- Как кнопка на вкладке « Производительность » в вашем диспетчере задач
- Перейти на вкладку CPU
- Используйте поле поиска в разделе « Связанные дескрипторы »
- Смотрите синюю стрелку на снимке экрана ниже
Найдя дескриптор, вы можете определить процесс, посмотрев на столбец «Изображение» и / или «PID».
Затем вы можете попытаться закрыть приложение, как обычно, или, если это невозможно, просто щелкнуть правой кнопкой мыши по дескриптору и завершить процесс прямо оттуда. Очень просто!
Примечание. Монитор ресурсов не обнаружил никаких связанных дескрипторов в моем случае, а Process Explorer (как описано выше ) обнаружил .
@ComFreek Ну, ProcessExplorer может быть более мощным во многих случаях, но для меня Resource Monitor всегда находил приложение, блокирующее файл, с которым я пытаюсь что-то сделать. Я также предпочитаю его Process Explorer просто потому, что он прямо там, в ОС. Нет необходимости в дополнительной загрузке и дополнительном ярлыке где-либо.
Я не смог найти это в Process Explorer, но было легко найти эти инструкции в Resource Manager. Благодарю.
@ComFreek В моем случае это был просто другой случай: Process Explorer не нашел дескриптор, в то время как Resource Monitor сделал.
+1 — это также отлично работает на Windows 10
Microsoft / SysInternals Process Explorer — выберите «Найти»> «Найти дескриптор» или «DLL». В текстовом поле «Обрабатывать или подстрока DLL:» введите путь к файлу (например, «C: \ path \ to \ file.txt») и нажмите «Поиск». Все процессы, которые имеют открытый дескриптор этого файла, должны быть перечислены.
WhoLockMe — расширение для проводника, которое добавляет контекстное меню
NB WhoLockMe по- видимому, не работает с Win 10 ( по крайней мере , я не смог зарегистрировать его с любым из 32- или 64-разрядных версий regsvr32.exe).
В Windows 7, если вы попытаетесь удалить заблокированный файл, в сообщении об ошибке будет указано, какой процесс заблокирован
ПРИМЕЧАНИЕ: Unlocker устанавливает Adware, если вы не будете осторожны. С их сайта: «Рекламная функция: полностью дополнительная панель инструментов Delta».
@GarryEnglish почему-то это не всегда так. Мне просто нужно было использовать procxp, чтобы сказать, что notepad ++ заблокировал папку. Windows 7 не смогла сказать мне виновника.
@ jpmc26 Нет. WhoLockMe не работает в Windows 7.
@ GarryEnglish — Как заявляет GuiSim, это точно не всегда так, и, по моему опыту, так бывает редко.
Посмотрите на Process Explorer ( procexp.exe ).
Из его введения:
Задумывались ли вы, какая программа имеет определенный файл или каталог открыт? Теперь вы можете узнать.
Чтобы узнать, какой процесс использует определенный файл, выполните следующие действия:
- Зайдите в Find , Find Handle или DLL .. или просто нажмите Ctrl + F .

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

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

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

Как узнать, каким процессом занят файл?
Приветствую. Собственно интересует такой вопрос: «Как узнать, каким процессом занят файл?» Можно ли это реализовать посредством FileSystemWatcher ?
Отслеживать
задан 18 фев 2013 в 13:13
206 7 7 серебряных знаков 20 20 бронзовых знаков
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
На SO предлагают воспользоваться утилитой handle.exe и убить процесс таким образом:
string fileName = @"c:\aaa.doc"; //Путь к занятому файлу Process tool = new Process(); tool.StartInfo.FileName = "handle.exe"; tool.StartInfo.Arguments = fileName+" /accepteula"; tool.StartInfo.UseShellExecute = false; tool.StartInfo.RedirectStandardOutput = true; tool.Start(); tool.WaitForExit(); string outputTool = tool.StandardOutput.ReadToEnd(); string matchPattern = @"(?
Но ещё есть гипервариант: листинг на PasteBin, который тоже покажет процесс, который занял файл.
как узнать чем занят файл windows 10
Как узнать, какой процесс блокирует файл или папку в Windows
Как я могу узнать, какой процесс блокирует файл или папку в Windows? Например, при попытке удалить папку Windows сообщает следующее:
Операция не может быть завершена, так как эти папка или файл открыты в другой программе. Закройте папку или файл и повторите попытку.

Такая же ошибка может возникнуть при переименовании или удаления как папки, так и файла. Но как узнать, какая программа или приложение в настоящее время использует его и не позволяет удалить файл или папку?
Имеется сразу несколько способов и программ чтобы найти процессы и программы, которые открыли файл.
1. Монитор ресурсов
Для поиска программы или процесса, открывшей файл, вы можете использовать Монитор ресурсов (Resource Monitor), который встроен в Windows 7, 8 и 10.
Откройте Монитор ресурсов, это можно сделать несколькими способами:


В Мониторе ресурсов перейдите на вкладку ЦП (CPU). Используйте поле поиска в разделе «Связанные дескрипторы»

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

2. Process Explorer
Process Explorer — это официальная программа от Microsoft/SysInternals, которую можно скачать по ссылке: https://download.sysinternals.com/files/ProcessExplorer.zip
Перейдите в Find → Handle or DLL.

В текстовом поле «Handle or DLL substring:» введите путь до файла или папки. Будут показаны все процессы, которые имеют открытый обработчик на этот файл.
3. OpenedFilesView
OpenedFilesView это бесплатная программа не требующая установки, она покажет все открытые файлы, имеется возможность искать по имени или пути файла:

4. LockHunter
LockHunter — это надёжная программа для разблокировки файлов.

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

Как узнать чем занят файл windows 10
Один из них такой: А вот как определить процесс, если этим процессом является драйвер?
В таких случаях Unlocer пишет, что процесс не блокирован, но удалить, переместить, переименовать файл можно только при перезагрузке.
NirSoft OpenedFilesView кроме того, что это процесс системный, тоже не пишет ничего.
Ни Process Explorer, ни Process Monitor, ни другие утилиты не пишут каким процессом занят файл, если этим процессом является какой-нибудь драйвер.
В папке C:\Windows\Temp у меня появился фай TmpFile1.
Разер файла 8 409 088 Байт (ровно 16424 кластера).
Удалить, переместить, переименовать его ничем не возможно.
Определить, какой процесс его создает, тоже не получается.
«Методом тыка» и путем «гугления» проблемы, путем проб и ошибок, было найдено, что этим процессом является драйвер.
Короче, с какой-то программой, даже не знаю какой, установился алладиновский драйвер защиты Driver Sentinel HASP.
Если проделать операции Диспетчер устройств >>> Вид >>> Показать скрытые устройства >>> Драйверы несамонастраиваемых устройств >>> aksdf >>> Свойства >>> Драйвер >>> Остановить, то файл C:\Windows\Temp\TmpFile1 сразу же исчезает, но при включении драйвера он сразу же появляется опять.
Так же, когда у меня стоял Kaspersky Cristal, какой-то один из его драйверов так же создавал в папке C:\Windows\Temp какие-то файлы, которые так же удалить, переместить, переименовать было невозможно, которые так же сами исчезали после отключения драйвера и появлялись после включения.
Вот и основной вопрос: «Как программно, не «методом тыка», не «гуглением», а средствами Windows, определить, каким процессом занят файл, если этим процессом является драйвер?»
Драйвер – это системный процесс, и сторонних утилит, способных копаться в системных процессах, практически нет. Помочь моли бы Microsoft (а оно ей надо) или Марк Руссинович, и его утилита Process Monitor.
Если коротко, то методика такая:
— Ставим фильтр на путь: C:\Windows\Temp\TmpFile1
— Ставим галочку Enable Boot Logging (Включить лог загрузки)
— Указываем путь сохранения лога
— Перезагружаемся
— Исследуем загрузочный лог
Как определить, какой процесс в Windows 10 не дает переименовать, переместить либо удалить файл или папку
Н аверное, каждому из пользователей Windows хотя бы раз приходилось иметь дело с так называемыми неудаляемыми файлами и папками. Как правило, причиной невозможности удалить, переместить или хотя бы переименовать такой объект является использование его каким-то процессом, причём необязательно чтобы этот процесс был системным. Это может быть антивирус, архиватор или какой-нибудь редактор.
Обычно в окне с ошибкой прямо указывается, что за процесс препятствует дальнейшим действиям с объектом, но бывает и так, что вместо этого сообщается, что файл или папка открыты в другой программе. Это понятно, но вот в какой именно?

Так вот, определить её очень просто. Во всех популярных версиях Windows (начиная с 7) есть такая встроенная утилита как «Монитор ресурсов», предназначающаяся для контроля использования программных и аппаратных ресурсов. В её поле зрения попадают все процессы, в том числе и зависшие. Она то как раз и подскажет, что именно держит файл или папку.


Вот так всё просто. Кстати, если удерживающий процесс не является критическим, его можно завершить прямо из окна монитора ресурсов.

После этого проблемный файл, папка или другой объект легко смогут быть удалены обычным способом.
Как вы узнаете, какой процесс удерживает файл открытым в Windows?
Одна вещь, которая раздражает меня в Windows, это старая ошибка нарушения общего доступа. Часто вы не можете определить, что держит его открытым. Обычно это просто редактор или исследователь, просто указывающий на соответствующий каталог, но иногда мне приходилось прибегать к перезагрузке компьютера.
Любые предложения о том, как найти виновника?
Чтобы найти конкретный файл, используйте пункт меню « Find->Find Handle or DLL. Введите» в части пути к файлу. Список процессов появится ниже.
Для этого вы можете использовать Resource Monitor, который встроен в Windows 7, 8 и 10.
Найдя дескриптор, вы можете определить процесс, посмотрев на столбец «Изображение» и / или «PID».
Затем вы можете попытаться закрыть приложение, как обычно, или, если это невозможно, просто щелкнуть правой кнопкой мыши по дескриптору и завершить процесс прямо оттуда. Очень просто!

см. сообщение Раймонда Чена на эту тему
Предположим, у службы поиска есть файл, открытый для индексации, но он временно застрял, и вы хотите удалить файл, поэтому вы (неразумно) принудительно закрываете дескриптор. Служба индекса поиска открывает свой файл журнала, чтобы записать некоторую информацию, и дескриптор удаленного файла повторно используется в качестве дескриптора файла журнала. Завершенная операция, наконец, завершается, и служба индекса поиска, наконец, подходит к закрытию того дескриптора, который у нее был открыт, но в конечном итоге невольно закрывает дескриптор файла журнала.
Служба индекса поиска открывает другой файл, скажем, файл конфигурации для записи, чтобы обновить некоторое постоянное состояние. Дескриптор файла журнала перерабатывается как дескриптор файла конфигурации. Служба индекса поиска хочет записать некоторую информацию, поэтому она записывает в свой файл журнала. К сожалению, дескриптор файла журнала был закрыт, и этот дескриптор повторно использовался для его файла конфигурации. Зарегистрированная информация попадает в файл конфигурации, повреждая его.
Между тем, другой дескриптор, который вы принудительно закрыли, был повторно использован как дескриптор мьютекса, который используется для предотвращения повреждения данных. Когда оригинальный дескриптор файла закрыт, дескриптор мьютекса закрывается и защита от повреждения данных теряется. Чем дольше служба работает, тем более поврежденными становятся ее индексы. В конце концов, кто-то замечает, что индекс возвращает неверные результаты. И когда вы пытаетесь перезапустить службу, она терпит неудачу, потому что ее файлы конфигурации были повреждены.
Вы сообщаете о проблеме компании, которая предоставляет службу индекса поиска, и они определяют, что индекс был поврежден, файл журнала загадочным образом прекратил запись, а файл конфигурации был перезаписан мусором. Некоторому плохому специалисту поручена безнадежная задача выяснить, почему служба портит свои индексы и файлы конфигурации, не зная, что источником повреждения является то, что вы принудительно закрыли дескриптор.
Узнайте, какой процесс блокирует файл или папку в Windows
Как узнать, какой процесс блокирует файл или папку в Windows?
Например, при попытке удалить папку Windows сообщает об этом:
Действие не может быть выполнено, потому что папка открыта в другой программе
Случается то же самое с файлом, но как узнать, какая программа или приложение в настоящее время его использует и не позволяет мне удалить файл или папку?
9 ответов
Если это не очевидно, когда вы нашли дескриптор, вы можете определить процесс, посмотрев на столбец Image и /или PID.

N.B. WhoLockMe, похоже, не работает с Win 10 (по крайней мере, мне не удалось зарегистрировать его ни в одной из 32- или 64-разрядных версий regsvr32.exe).
Вы когда-нибудь задавались вопросом, какая программа имеет определенный файл или каталог? Теперь вы можете это выяснить.
Чтобы узнать, какой процесс использует определенный файл, выполните следующие действия:

>

Это бесплатный инструмент для удаления файлов, заблокированных тем, что вы не знаете. LockHunter полезен для борьбы с вредоносными программами и другими программами, которые блокируют файлы без причины. В отличие от других подобных инструментов, он удаляет файлы в корзину, чтобы вы могли их восстановить, если они были удалены по ошибке.
EMCO UnlockIT может идентифицировать процесс, который заблокировал файл, а также разблокировать файл, чтобы вы может удалить /отредактировать /переместить его. Программа полностью бесплатна, хотя более новая версия немного медленнее и более раздутой, чем оригинал (у которого был простой, неподтвержденный графический интерфейс, но загружался практически мгновенно и без раздражающего заставки). Кроме того, оригинальная версия используется для автоматического всплытия всякий раз, когда вы вызываете ошибку, которая позволяет вам мгновенно разблокировать файл и выполнить операцию, которую вы пытаетесь выполнить.
Вот мое открытие & Решение.
Кстати, ни один из вышеперечисленных ответов не решил мою проблему.
Я даже пытался использовать UNLOCKER, который оказался бесполезным.
Моя проблема была в том, что Memeo Autosync Backup
По-видимому, этот процесс резервного копирования оставляет достаточно «файла-призрака». Этот «призрак, как файл», будет отображаться всякий раз, когда я буду ALT-TAB на моем компьютере (Windows Professional XP), то есть я увижу, что в моей TASK BAR запускаются две программы MS Excel, когда я только ОДИН был видимым.
Я столкнулся с этим решением, когда подумал, что это могла быть защита SYMANTEC Endpoint (Anti-Virus); и отключил программу. Однако я продолжал получать сообщение об ошибке:
невозможно удалить (файл LARGE.xls): он используется другим человеком или программой. Закройте все программы, которые могут использовать этот файл, и повторите попытку.
Впоследствии я продолжал видеть уведомление Memeo о «синхронизации» и ВЫКЛЮЧИТЬ программу.
Для вас это может быть ЛЮБОЙ из этих фоновых сейвов.
Если вы не знаете программу, которую он использует, вы можете перейти в «Мой компьютер»; щелкните правой кнопкой мыши; выберите «Управление». В разделе «Системные инструменты»> Общие папки> Откройте файлы, вы сможете увидеть пользователя, который заблокировал файл. Здесь вы можете закрыть файл, а затем выполнить задачу переименования или удаления файла. Надеюсь, что это поможет
Дополнительная возможность, просто чтобы сэкономить людям время, которое я потратил:
Измените право собственности на Администраторов, и вам хорошо идти.
Файл занят другим процессом, заблокирован другим процессом или открыт в другой программе — простое решение

Распространенная проблема при попытке удалить, переименовать, переместить или изменить файл или папку — сообщение о том, что процесс не может получить доступ к файлу, так как этот файл занят другим процессом, о том, что папка или файл открыты в другой программе и аналогичные.
File Locksmith — новая функция Microsoft PowerToys для разблокировки файлов
Заблокированный другим процессом файл или папка — типичная ситуация, при этом Windows не всегда сообщает пользователю, о каком именно процессе идёт речь.

На сайте уже несколько раз обновлялся обзор полезной и бесплатной утилиты Microsoft PowerToys, содержащей набор инструментов для работы в системах Windows 10 и Windows 11. В начале ноября в ней появилась ещё одна возможность — File Locksmith, которая и поможет в рассматриваемой ситуации.
File Locksmith позволяет легко определить, какие процессы используют файл или папку (а точнее — её содержимое) и быстро закрыть эти процессы. Далее подробно о том, как именно работает функция:
- Установите Microsoft PowerToys, если ещё не установили. Проще всего это сделать из магазина приложений Microsoft Store используя поиск в магазине или ссылку https://aka.ms/getPowertoys, также есть другие способы загрузки: https://learn.microsoft.com/ru-ru/windows/powertoys/install
- После первого запуска приложения может потребоваться перезапуск PowerToys от имени администратора в главном окне приложения (в моем тесте функция File Locksmith не появилась в меню до выполнения перезапуска на одном из устройств).

- В параметрах Microsoft PowerToys убедитесь, что функция File Locksmith включена.

- Нажмите правой кнопкой мыши по файлу, который занят другим процессом и выберите пункт меню «Какие процессы используют этот файл?». В Windows 11 потребуется предварительно открыть классическое контекстное меню, нажав «Показать дополнительные параметры».

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

- Раскрыв свойства процесса, вы можете узнать его идентификатор (например, для завершения вручную), а также от имени какого пользователя он запущен.

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

- И, самое главное, прямо в окне File Locksmith можно завершить процесс. Однако будьте осторожны при завершении системных процессов Windows.
Надеюсь, новый инструмент будет полезен. Конечно, есть и другие возможности, например, многие используют Unlocker, но вариант с File Locksmith куда более безопасен для пользователя, на мой взгляд.
А вдруг и это будет интересно:
- Лучшие бесплатные программы для Windows
- В манифесте указана неизвестная структура в Microsoft Store — варианты решения
- Как добавить комментарии, теги и рейтинги к папке Windows
- Не удается войти в учетную запись Windows — как исправить?
- Некоторые параметры задает системный администратор в параметрах электропитания — как исправить?
- Как удалить Галерею в Windows 11
- Windows 11
- Windows 10
- Android
- Загрузочная флешка
- Лечение вирусов
- Восстановление данных
- Установка с флешки
- Настройка роутера
- Всё про Windows
- В контакте
- Одноклассники
-
Дмитрий 24.11.2022 в 11:33
