Процесс не может получить доступ к файлу
Содержание:
Когда файл занят каким-то процессом с ним не получится произвести никаких действий, ни изменить, ни удалить. Все дело в том, что система накладывает ограничения на выполнение редактирования файла, так как это, на самом деле, может нанести вред программному обеспечению. При таких обстоятельствах и возникает сообщение об ошибке, которое гласит: "Процесс не может получить доступ к файлу, так как этот файл занят другим процессом". Подумав логически можно сделать вывод: чтобы открыть доступ этому самому процессу, надо освободить файл от другого процесса. А вот с этим сталкивался, наверное, каждый из нас и знает, что сделать это, чаще всего, гораздо сложнее, чем кажется изначально.
↑ Процесс не может получить доступ к файлу
Все из-за того, что с файлом может одновременно работать лишь одно приложение. В первую очередь это касается элементов системы предназначенных для перезаписи. Когда мы, например, играем в игру и файл с кэшем постоянно подвергнут обработке, система Windows накладывает ограничение. После этого редактировать, заменять, удалять и т.д. его уже не получается ровно до тех пор, пока процесс, который с ним работает, не будет завершён.
{banner_google1}
↑ Как же всё-таки удалить файл в ситуации, когда у процесса не получается обрести доступ?
Файл, который занят другим процессом будет загружен в оперативную память или открыт приложением. Зачастую хватает убрать его из оперативки и всех приложений. Файл перестанет использоваться каким-то процессом и его сразу можно будет отредактировать или удалить.
Чаще всего, проблема заключается в том, чтобы найти этот самый процесс, который использует определённый файл. Использовать ваш файл может какое угодно приложение. Если это, допустим, картинка, вы закрыли программу просмотра картинок и у вас получается удалить это изображение, то считайте вам повезло. Если же нет, то, возможно, придется лезть куда глубже.
↑ Как решить проблему?
1. Unlocker — программа, которая помогает как раз в таких случаях. Она сама находит процессы, которые заняты этим файлом и завершает их. Это можно сделать и без утилиты, только придётся искать в ручную и завершать, а утилита это делает автоматически. Скачав и установив программу, нужно всего лишь нажать ПКМ на файл и выбрать «Unlock»
2. Завершить вручную. Открываем диспетчер задач и разворачиваем список "Подробнее". Из всего большого списка, нужно выбрать только те, которые были запущены Вами. Например, для удаления файла с кэшем браузера, нужно закрыть все задачи браузера. Для этого кликаем правой кнопкой мыши и нажимаем "Завершить задачу".
3. Схитрить с установкой атрибутов. Нажать ПКМ на файл и зайти в свойства. Тут же на вкладке "Общие" поставить галочку напротив поля "Только чтение". Далее перезагрузить компьютер и возможность удаления может появиться.
{banner_google1}
4. Удалить в безопасном режиме. В безопасном режиме Windows загружает только основные программы нужны для работы системы. Все посторонние остаются отключены, что освобождает файлы от процессов. Для входа в безопасный режим нужно перезагрузить компьютер и во время перезагрузки нажать на клавишу F8 для того, чтобы выбрать вариант запуска системы. На некоторых ПК это может быть другая клавиша. Данный способ довольно часто срабатывает и удалить здесь можно почти любой файл, который не затрагивает работу Windows.
5. Снять защиту на запись. Защита может быть включена как программно, так и механически. Чаще всего это касается SD-карт. На них есть специальный тумблер, который блокирует запись. Программно это выключается через редактор реестра. Для этого нажимаем на Пуск правой кнопкой мыши, выбираем "Выполнить", вводим команду regedit и нажимаем "Ok". Далее нужно найти параметр WriteProtect и установить ему значение 0.
↑ Что делать, когда такая же проблема настигла в консоли или IIS?
Часто такая же проблема, когда процесс не может получить доступ, может выскочить при выполнении команды netsh в командной строке или при настройке сайта IIS. Тут может быть несколько причин:
1. Неправильная настройка реестра.
2. Попытка подключения к портам 80 и 443, когда они заняты.
3. Не хватает прав для выполнения действия.
А решить проблему можно так:
1. Запустить cmd от имени администратора. Сделать это можно в меню Пуск с помощью правой кнопки мыши.
2. Поменять пул IP-адресов. Выполнить команду netsh int ipv4 set dynamicport tcp start=10000 num=1000. Затем такую netsh int ipv4 set dynamicport udp start=10000 num=1000.
3. Удалить конфликт портов. От имени администратора запустить командную строку, прописать netstat -ano и посмотреть не заняты ли порты 80 и 443. Если порты свободны, то идём в реестр по пути:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters\ListenOnlyList
Далее в cmd вводим net stop http и в параметре реестра ListenOnlyList нужно оставить одни 0.0.0.0. Далее опять в консоли пишем net start http. Если порты в итоге заняты, то их нужно или освободить или переопределить.
С помощью таких манипуляций можно справиться с ошибкой "Процесс не может получить доступ к файлу" и удалить файл.