Когда я удаляю файл, который используется каким-то процессом, я получаю ошибку отказа в доступе, заявляя, что файл не может быть удален, поскольку он в настоящее время используется. Есть ли способ узнать, какой именно процесс использует этот файл в WINDOWS?
Как узнать, какой процесс использует данный файл?
Ответ 1
Для Windows 7 и Windows 8 для этого можно использовать встроенный монитор ресурсов.
Вы можете найти его, выполнив поиск Монитора ресурсов в меню "Пуск".
Выберите раздел Связанные ручки на вкладке ЦП и введите нужный файл.
Когда вы найдете процесс, который использует этот файл, щелкните правой кнопкой мыши и выберите "Завершить процесс"
Если вы хотите разблокировать всю папку или файл, который используется какой-либо программой, вы можете скачать программу Unlocker из здесь
Ответ 2
В Windows вы можете использовать handle.exe от Sysinternals:
handle <name of file>
http://technet.microsoft.com/en-us/sysinternals/default.aspx
В Linux вы можете использовать lsof
Ответ 3
Если вы являетесь разработчиком/системным администратором, то в командной строке используйте:
tasklist /m path\filename.extension
Например:
tasklist /m c:\test\test.dll
чтобы найти этот процесс. Я использовал это с *. DLL файлами. Я не уверен в расширениях, таких как .avi или .mp3
Ответ 4
Комбинация фьюзера и /proc должна работать для linux/unix:
fuser - идентифицировать процессы с использованием файлов или сокетов