Файл занят другим процессом, заблокирован другим процессом или открыт в другой программе — простое решение

Распространенная проблема при попытке удалить, переименовать, переместить или изменить файл или папку — сообщение о том, что процесс не может получить доступ к файлу, так как этот файл занят другим процессом, о том, что папка или файл открыты в другой программе и аналогичные.
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
- Клавиши Alt и Win поменялись местами — как исправить?
- Ошибка 0x80072efd — как исправить?
- AV Block Remover — убираем блокировку антивирусов и сайтов майнером
- Ошибка 0x80070643 при обновлении KB5034441 — как исправить?
- Загрузочная флешка или карта памяти в balenaEtcher
- Windows 11
- Windows 10
- Android
- Загрузочная флешка
- Лечение вирусов
- Восстановление данных
- Установка с флешки
- Настройка роутера
- Всё про Windows
- В контакте
- Одноклассники
-
Дмитрий 24.11.2022 в 11:33
Как узнать, какой процесс блокирует файл или папку в Windows
Как я могу узнать, какой процесс блокирует файл или папку в Windows? Например, при попытке удалить папку Windows сообщает следующее:
Операция не может быть завершена, так как эти папка или файл открыты в другой программе. Закройте папку или файл и повторите попытку.
Такая же ошибка может возникнуть при переименовании или удаления как папки, так и файла. Но как узнать, какая программа или приложение в настоящее время использует его и не позволяет удалить файл или папку?
Имеется сразу несколько способов и программ чтобы найти процессы и программы, которые открыли файл.
1. Монитор ресурсов
Для поиска программы или процесса, открывшей файл, вы можете использовать Монитор ресурсов (Resource Monitor), который встроен в Windows 7, 8 и 10.
Откройте Монитор ресурсов, это можно сделать несколькими способами:
- В поле для поиска введите «Монитор ресурсов» или resmon.exe:
- Или в Диспетчере задач перейдите на вкладку «Производительность» и найдите кнопку «Открыть монитор ресурсов»:
В Мониторе ресурсов перейдите на вкладку ЦП (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 полезен для борьбы с вредоносными программами и другими программами, которые блокируют файлы без причины. В отличие от других подобных инструментов, он удаляет файлы в корзину, поэтому вы можете восстановить их, если удалили по ошибке.
- Показывает процессы, блокирующие файл или папку
- Предоставляет вам подробную информацию о процессе
- Позволяет разблокировать, удалить, скопировать или переименовать заблокированный файл
- Может удалить файл при следующей перезагрузке ОС
- Позволяет убить процесс блокировки
- Позволяет удалить процессы блокировки с жёсткого диска
- Может выгружать DLL из процессов
- Интегрируется в меню Проводника
- Он удаляет файлы в корзину, поэтому вы можете восстановить их, если удалили по ошибке
- Поддерживает как 32, так и 64 битную Windows
Как узнать каким процессом занят(блокирован) файл?
Добрый день! У меня следующая проблема, не могу удалить файл из-за того, что он занят каким то другим процессом и система выдает сообщение «Доступ запрещен». Как можно посмотреть каким процессом занят(блокирован) файл? при чем права у пользователя доступ к нему есть.
Категория: Система
Автор вопроса: Paulo
Просмотров: 9164
Ответы специалистов и комментарии пользователей

root / Роман Чернышов 20.09.2016, 01:56
Хорошая утилита от Майкрософт, Process Monitor v3.31. Множество настроек и информации по процессам и занимаемым им файлам, можно настроить фильтры только по определенной группе файлов.
vitalist / Виталий Владимирович 21.09.2016, 09:54
У меня windows 7 32-битная. Для удаления «неудаляемых» файлов отллично подходит утилита Unlocker. Для примера попытаемся очистить папку временных файлов Temp. Некоторые файлы не хотят удаляться. Тогда мы выделяем их и выбираем из контекстного меню наш Unlocker. Имеем:
Здесь видно, каким процессом заблокирован файл, который не желает удаляться. Выбираем «Удалить», «Разблокировать всё» — и наши «неудаляемые» файлы отлично удаляются:
Видим, что кроме папки антивируса больше ничего нет!
Как узнать, каким процессом занят файл?
Приветствую. Собственно интересует такой вопрос: «Как узнать, каким процессом занят файл?» Можно ли это реализовать посредством 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, который тоже покажет процесс, который занял файл.