Так как этот файл используется другим процессом
Содержание:
Когда файл занят каким-то процессом с ним не получится произвести никаких действий, ни изменить, ни удалить. Все дело в том, что система накладывает ограничения на выполнение редактирования файла, так как это, на самом деле, может нанести вред программному обеспечению. При таких обстоятельствах и возникает сообщение об ошибке, которое гласит: «Процесс не может получить доступ к файлу, так как этот файл занят другим процессом». Подумав логически можно сделать вывод: чтобы открыть доступ этому самому процессу, надо освободить файл от другого процесса. А вот с этим сталкивался, наверное, каждый из нас и знает, что сделать это, чаще всего, гораздо сложнее, чем кажется изначально.
↑ Процесс не может получить доступ к файлу
Все из-за того, что с файлом может одновременно работать лишь одно приложение. В первую очередь это касается элементов системы предназначенных для перезаписи. Когда мы, например, играем в игру и файл с кэшем постоянно подвергнут обработке, система Windows накладывает ограничение. После этого редактировать, заменять, удалять и т.д. его уже не получается ровно до тех пор, пока процесс, который с ним работает, не будет завершён.
↑ Как же всё-таки удалить файл в ситуации, когда у процесса не получается обрести доступ?
Файл, который занят другим процессом будет загружен в оперативную память или открыт приложением. Зачастую хватает убрать его из оперативки и всех приложений. Файл перестанет использоваться каким-то процессом и его сразу можно будет отредактировать или удалить.
Чаще всего, проблема заключается в том, чтобы найти этот самый процесс, который использует определённый файл. Использовать ваш файл может какое угодно приложение. Если это, допустим, картинка, вы закрыли программу просмотра картинок и у вас получается удалить это изображение, то считайте вам повезло. Если же нет, то, возможно, придется лезть куда глубже.
↑ Как решить проблему?
1. Unlocker — программа, которая помогает как раз в таких случаях. Она сама находит процессы, которые заняты этим файлом и завершает их. Это можно сделать и без утилиты, только придётся искать в ручную и завершать, а утилита это делает автоматически. Скачав и установив программу, нужно всего лишь нажать ПКМ на файл и выбрать «Unlock»
2. Завершить вручную. Открываем диспетчер задач и разворачиваем список «Подробнее». Из всего большого списка, нужно выбрать только те, которые были запущены Вами. Например, для удаления файла с кэшем браузера, нужно закрыть все задачи браузера. Для этого кликаем правой кнопкой мыши и нажимаем «Завершить задачу».
3. Схитрить с установкой атрибутов. Нажать ПКМ на файл и зайти в свойства. Тут же на вкладке «Общие» поставить галочку напротив поля «Только чтение». Далее перезагрузить компьютер и возможность удаления может появиться.
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.
Далее в cmd вводим net stop http и в параметре реестра ListenOnlyList нужно оставить одни 0.0.0.0. Далее опять в консоли пишем net start http. Если порты в итоге заняты, то их нужно или освободить или переопределить.
С помощью таких манипуляций можно справиться с ошибкой «Процесс не может получить доступ к файлу» и удалить файл.
Почему процесс не может получить доступ к файлу и что делать?
Чтобы удалить или изменить файл, он обязательно должен быть свободен от других процессов. Если его уже использует какая-то программа, система накладывает запрет на редактирование элемента, так как это повредит работу программного обеспечения. В этом случае появляется сообщение «Процесс не может получить доступ к файлу, так как этот файл занят другим процессом». Чтобы это исправить, нужно освободить его. Только вот сделать подобное куда сложнее, чем кажется на первый взгляд.
Почему “Процесс не может получить доступ к файлу”?
Одновременно работать с конкретным файлом может только одна программа. Речь идет не о библиотеках общего использования, которые используются только для извлечения данных, а об элементах, предназначенных для перезаписи. Если это кэш-файл игры, здесь содержится пользовательская информация или происходит постоянная обработка данных, и Windows накладывает ограничение. Данные файлы становятся недоступными для удаления или ручного изменения до тех пор, пока мы не завершим процесс, использующий их.
Как удалить файл, если процесс не может получить доступ к файлу?
Следуя по логической цепочке, для удаления любого файла, нужно сначала выгрузить его с оперативной памяти и со всех программ. Как только он перестанет использоваться системой в каких-то процессах, элемент сразу станет доступным для удаления.
Главная сложность данного вопроса в том, чтобы найти процесс, использующий конкретный файл. Это не всегда очевидно. Часто бывает, что изображение использует какая-то игра, браузер, торрент, медиапроигрыватель. Если в первую очередь подумать на программу просмотра картинок, вы ошибетесь. Нужно смотреть куда глубже.
Как можно решить проблему «процесс не может получить доступ к файлу»:
Как исправить проблему при использовании консоли и IIS?
Точно такая же самая ошибка «процесс не может получить доступ к файлу» может появиться при запуске команды netsh или при выполнении настройки сайта IIS. В таком случае проблема может быть вызвана недостатком прав для выполнения действия, попытке подключения к занятым портам 80 и 443 или некорректной настройкой реестра.
3 способа исправить ошибку:
Перечисленных выше действий достаточно, чтобы исправить проблему «Процесс не может получить доступ к файлу». После выполнения процедур удастся либо удалить файл, либо восстановить нормальную работу Windows IIS 6.0 и 7.0.
Процесс не может получить доступ к файлу
Пишу программу на C#, которая работает с файлами. Открыть на чтение (StreamReader) у меня нормально обрабатывает, а вот открыть файл на запись (StreamWriter) компилятор кидает ошибку System.IO такого типа: Процесс не может получить доступ к файлу как этот файл используется другим процессом
1 ответ 1
При работе с файлами, надо помнить, что если вы открыли файл монопольно, то пока не закроете поток связанный с этим файлом, попытки привязать к тому же файлу другой поток будут завершаться исключением. Корректно работу с файлом на чтение и запись можно сделать двумя способами:
Без освобождения потока:
С освобождением потока:
В этом случае после чтения и записи поток освобождается. Соответственно между чтением и записью (в любом порядке) файл доступен другим процессам.
В принципе, отдельно поток можно и не создавать, StreamWriter и StreamReader сами умеют создавать поток к файлу по его имени, в таком случае код короче:
Но вы лишаетесь возможности настроить FileShare, и запретить другим программам блокировать файл пока вы им не пользуетесь.
Кроме всего перечисленного крайне желательно прежде чем открывать потоки чтения-записи, проверять существование файла, наличие необходимых прав доступа и т.д. потому что отсутствие какой либо из проверок в большинстве случаев гарантирует исключение.
Как исправить: Процесс не может получить доступ к файлу, так как этот файл занят другим процессом
С ошибкой «Процесс не может получить доступ к файлу, так как этот файл занят другим процессом» пользователи часто сталкиваются при попытке выполнить команду netsh или в процессе настройки сайта IIS. Узнаем, как ее исправить.
Причины ошибки
Если в ходе настройки сайта IIS или выполнения другого действия система неожиданно выбрасывает сообщение об ошибке, в котором указано, что процессу не удается получить доступ к файлу, то это может произойти по следующим причинам:
Запуск команды с доступом администратора
Если не удается выполнить команду netsh, скорее всего, ошибка возникает из-за отсутствия прав администратора. В большинстве случаев это происходит, когда пользователь пытается запустить команду, которая добавляет исключения в динамический диапазон портов для собственных приложений Windows или сторонних программ. Имейте в виду, что эта операция требует доступа администратора. Чтобы предоставить его, выполните следующие шаги.
С помощью системного поиска найдите командную строку и запустите ее с правами администратора. Если отобразится запрос контроля учетных записей (UAC), подтвердите его нажатием на кнопку «Да».
В командной строке выполните еще раз команду и проверьте, не прерывается ли ее запуск ошибкой «Процесс не может получить доступ к файлу, так как этот файл занят другим процессом»
Установка другого диапазона IP-адресов
Если не удалось решить конфликт DNS с помощью утилиты netsh, попробуйте использовать другой подход. По отзывам пользователей, проблема была разрешена после того, когда они установили совершенно другой диапазон IP-адресов вместо создания диапазона исключений. Этот способ подтвержден при разрешении конфликта между DNS и бухгалтерской программой Quickbooks.
В консоли командной строки с администраторскими правами запустите следующие команды:
Если этот метод не применим к вашей ситуации, перейдите к следующему способу.
Разрешения конфликта портов IIS
Если столкнулись с ошибкой при правом щелчке мыши на элемент сайта внутри оснастки IIS MMC, попробуйте использовать утилиту Netstat.exe, чтобы узнать, занят ли порт 80 или 443 другим процессом. Эта проблема распространена на компьютерах под управлением Microsoft IIS 6.0 и 7.0. Основываясь на официальной документации Майкрософта, сообщение об ошибке появится в случае, если одно из следующих условий применимо к текущей ситуации:
Для исправления ошибки сначала запустим утилиту Netstat.exe, чтобы определить, использует ли другой процесс указанные порты. Если они не заняты другим процессом, проверим раздел ListenOnlyList, правильно ли он настроен.
Откройте командную строку, предоставив ей доступ администратора, с помощью поисковой системы Windows. Для запуска утилиты Netstat.exe выполните команду:
При отображении результатов, прокрутите список активных подключений и проверьте, занятии ли порты 80и 443 другим процессом.
При их использовании отображаемая информация позволит определить причину ошибки. Для этого поищите в интернете конкретные шаги по разрешению конфликта в соответствии с PID-порта.
Если порты не используются, закройте командную строку и запустите Редактор реестра командой regedit из окна Win + R.
На левой панели навигации перейдите в следующее расположение:
Если по указанному пути ListenOnlyList отсутствует, не нужно его создавать, поскольку по умолчанию используется IP-адрес 0.0.0.0.
Перед редактированием раздела нужно становить службу HTTP, на которой работает IIS. Поэтому временно сверните редактор реестра, поскольку сейчас вернемся к нему.
Снова откройте командную строку с правами администратора.
В консоли выполните указанную команду, чтобы остановить службу HTTP, ответственную за запуск IIS:
Чтобы продолжить операцию, введите «Y» и нажмите на Enter. После успешного завершения закройте консоль и вернитесь в редактора реестра.
Перейдите на правую панель раздела ListenOnlyList и убедитесь, что он содержит допустимые IP-адреса. При обнаружении недопустимых адресов, удалите их.
Если присутствует адрес 0.0.0.0, нужно удалить все остальные IP-адреса. После закройте редактор и перезагрузите ПК.
После перезагрузки служба HTTP должна быть запущена автоматически. Если этого не произошло, в командной строке с доступом администратора выполните:
Если отобразится сообщение, что запрошенная служба уже запущена, следуйте далее.
Попробуйте запустить службу из оснастки IIS MMC. После этого больше не должны сталкиваться с ошибкой, когда процессу не удается получить доступ к файлу, поскольку файл занят другим процессом.
Процесс не может получить доступ к файлу, так как этот файл используется другом процессом
По заданию в курсовой необходимо написать программу шифрования двойной табличной перестановкой с использованием файлов, может конечно тут многое можно было гораздо проще сделать, но как додумался так сделал. Но вылезла ошибка с файлом. P.s. не знаю как записать строку в двумерный массив поэтому использовал файл для записи. P.p.s. вывод в файл еще не сделал но это не проблема.
Помогите решить проблему, ошибка:
Ошибка времени выполнения: System.IO.IOException: Процесс не может получить доступ к файлу «C:\Users\Павел\Desktop\КБ Информатика\Курсовая\Kurs.txt», так как этот файл используется другим процессом.
Стек:
в System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
в System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
в System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
в System.IO.StreamWriter.CreateFile(String path, Boolean append, Boolean checkHost)
в System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize, Boolean checkHost)
в System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding)
в PABCSystem.PABCSystem.Rewrite(Text f, Encoding en)
в PABCSystem.PABCSystem.Rewrite(Text f)
в Шифратор2.Program.$Main() в C:\Users\Павел\Desktop\КБ Информатика\Курсовая\Шифратор2.pas:строка 14
в Шифратор2.Program.Main()
Процесс не может получить доступ к файлу, так как этот файл используется другим процессом
Все работает, кроме записи результатов в файл. В разделе описания с файла все норм считывается, а.

using System; using System.Collections.Generic; using System.Linq; using System.Text; using.
Процесс не может получить доступ к файлу, так как этот файл используется другим процессом
Программа отправляет на сервер сообщение из файла(должна), но выдаёт исключение «Процесс не может.
Процесс не может получить доступ к файлу, так как этот файл используется другим процессом
Моя программа должна добавлять на форму картинку, уменьшив ее до размеров 70х70, и скопировать ее.
так в этом же случае тоже вылазиет такая ошибка, что мне с ней делать?







