Процесс не может получить доступ к файлу, так как файл используется другим процессом

Обновлено: 22.11.2024

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

Проблема начинается, когда операционная система отказывается снять блокировку с файла, чтобы позволить другому процессу изменить или использовать его. В этом сценарии вы видите сообщение: «Процесс не может получить доступ к файлу, поскольку он используется другим процессом». Эта проблема может возникнуть по нескольким причинам. Это может быть связано с кодом ошибки Windows 0x80070020.

В этой статье обсуждаются различные причины этой проблемы и способы ее устранения. Мы также покажем вам, как исправить ошибку 0x80070020 в приложении "Фотографии", чтобы ваш компьютер снова работал нормально.

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

Как исправить ошибку «Процесс не может получить доступ к файлу, поскольку он используется другим процессом»

Наконец-то вы лучше понимаете, почему выбранный вами процесс не может получить доступ к вашему файлу. Следующий шаг — научиться определять, какая программа уже поставила на него блокировку. Мы обсудим решения этой ошибки в двух разных разделах, так как она влияет как на Центр обновления Windows, так и на приложение «Фотографии».

Чтобы узнать, что отвечает за блокировку, вам нужно использовать инструмент под названием Process Explorer Sysinternal Suite. Это программное обеспечение, созданное Марком Руссиновичем и Брайсом Когсвеллом, предназначено для того, чтобы помочь вам выяснить, в какой из ваших программ открыт конкретный файл или каталог. Независимо от того, являетесь ли вы ИТ-специалистом или обычным пользователем, этот инструмент пригодится вам при устранении неполадок и диагностике вашей операционной системы Windows.

Перейдите по ссылке выше и загрузите Process Explorer. Запустите его, чтобы начать процесс устранения неполадок, и выполните следующие действия:

  • Найдите значок «Найти процесс окна» и перетащите его на файл, с которым возникла проблема. Перетащите его в файл, чтобы мгновенно увидеть программу, использующую его.
  • Теперь щелкните правой кнопкой мыши этот процесс, чтобы завершить его. Это не позволит программе удерживать файл, и Windows снимет с него блокировку.

Теперь вы можете продолжить и получить доступ к файлу с помощью программы по вашему выбору. Ошибка больше не будет возникать.

Что такое код ошибки Windows 0x80070020?

Ошибка Windows 0x80070020 — это ошибка, которая может возникнуть при попытке обновления или обновления до Windows 10. Когда вы сталкиваетесь с этой проблемой, это означает, что ресурсы или файлы, необходимые процессу Центра обновления Windows, используются другой программой. Полное сообщение об ошибке выглядит следующим образом: "Существующий процесс не может получить доступ к файлу, поскольку он используется другим процессом".

Прежде чем вы сможете решить эту проблему, вам нужно использовать инструмент MSCONFIG. Эта программа поможет вам перевести компьютер в состояние чистой загрузки. Этот режим отличается от безопасного режима и позволяет устранять сложные ошибки Windows и диагностировать их. Чтобы выполнить чистую загрузку, сделайте следующее:

  • Откройте окно поиска и введите «msconfig» (без кавычек). Теперь нажмите кнопку Enter на клавиатуре, чтобы открыть утилиту настройки системы.
  • Найдите вкладку "Общие" и нажмите на нее. Из отображаемых вариантов выберите «Выборочный запуск».
  • Поставьте флажок рядом с пунктом «Загрузить элементы автозагрузки» и снимите его. Теперь перейдите к разделу «Использовать исходную конфигурацию загрузки» и «Загрузить системные службы», чтобы убедиться, что их флажки установлены.
  • Сейчас перейдите на вкладку "Службы" и выберите ее. Установите флажок рядом с пунктом «Скрыть все службы Microsoft» и установите его.
  • Чтобы сделать следующий шаг, перейдите в раздел "Отключить все" и нажмите на него.
  • Теперь вы можете нажать "Применить" и "ОК", чтобы подтвердить изменения.
  • Перезагрузите компьютер, чтобы активировать новые настройки и перевести ОС Windows в состояние чистой загрузки.

Проверьте, устранена ли ошибка. Если проблема не устранена, вернитесь на вкладку «Общие» и также снимите флажок «Загрузить системные службы». Теперь нажмите «Применить» и «ОК», чтобы подтвердить изменение, а затем снова перезагрузите устройство. Это должно решить проблему.

Чтобы выйти из состояния чистой загрузки и вернуться к обычной среде Windows, просто отмените все изменения, сделанные выше.

Примечание. Функция "Отключить все" позволяет легко определить, какая программа вызывает ту или иную проблему.Вы можете включать свои программы вручную одну за другой, а затем каждый раз перезагружать систему. Если проблема повторяется при включении определенного процесса, вы знаете виновника.

Как исправить ошибку приложения «Фото» 0x80070020

Аналогичная проблема возникает и с приложением "Фотографии". Эта ошибка не позволяет сохранить файл, поскольку его использует другой процесс. Это не серьезная проблема; это просто не позволяет приложению изменять данные. Иногда все, что вам нужно сделать, это перезагрузить компьютер, и ошибка исчезнет. Однако, если это повторяется, следуйте приведенным ниже советам:

Используйте другое имя для файла

Решение может быть таким же простым, как использование другого имени файла. Попробуйте это исправление, чтобы увидеть, устраняет ли оно ошибку. Не забывайте, что новое имя должно быть коротким.

Сохраните файл в другом месте

Если приведенное выше решение не работает, попробуйте экспортировать файл в другое место и проверьте, работает ли оно. Если это исправление не помогло, перейдите к следующему решению.

Создать новый файл

Хотя вы можете этого не делать, может помочь создание нового файла с нуля. Проверьте, не изменилось ли это.

Сохраните файл на локальном жестком диске

Если вы столкнулись с этой ошибкой при попытке сохранить файл в OneDrive, Google Диске или любом другом облачном хранилище, попробуйте сохранить его на локальном жестком диске. Затем проверьте, не повторяется ли код ошибки 0x80070020.

Автоматическое исправление ошибок Windows

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

Auslogics BoostSpeed – это программное обеспечение, созданное командой ведущих профессионалов, которое поможет вам очистить систему, настроить параметры, а также найти и устранить проблемы, влияющие на производительность вашего ПК. При регулярном использовании вашего устройства с Windows 10 накапливаются поврежденные файлы, сломанные ключи и ненужные файлы. Они замедляют работу вашего устройства, вызывают сбои и приводят к ошибкам, например "Процесс не может получить доступ к файлу, поскольку он используется другим процессом".

Решение проблем с ПК с помощью Auslogics BoostSpeed

Помимо очистки и оптимизации вашего ПК, BoostSpeed ​​защищает конфиденциальность, диагностирует проблемы с оборудованием, предлагает советы по повышению скорости и предоставляет более 20 инструментов для удовлетворения большинства потребностей в обслуживании ПК.

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

Самое приятное то, что после того, как вы выберете график обслуживания, инструмент будет автоматически следовать ему, чтобы защитить и оптимизировать вашу систему. Это гарантирует, что проблемы и ошибки не возникнут в будущем.

Заключение

Мы надеемся, что это руководство помогло вам решить проблему «Процесс не может получить доступ к файлу…». Если у вас есть какие-либо вопросы или предложения, которыми вы можете поделиться, пожалуйста, используйте раздел комментариев ниже.

Сообщение об ошибке довольно ясное: вы пытаетесь получить доступ к файлу, а он недоступен, потому что другой процесс (или даже тот же процесс) что-то делает с ним (и он не разрешает никакого обмена).< /p>

Отладка

Это может быть довольно легко решить (или довольно сложно понять), в зависимости от вашего конкретного сценария. Давайте посмотрим кое-что.

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

К счастью, FileStream реализует IDisposable , поэтому весь код легко поместить в оператор using:

Этот шаблон также гарантирует, что файл не останется открытым в случае исключений (это может быть причиной того, что файл используется: что-то пошло не так, и никто его не закрыл; см. пример в этом посте) .

Обратите внимание на распространенную ошибку, которую мы очень часто видим в StackOverflow:

В этом случае ReadAllText() завершится ошибкой, поскольку файл уже используется ( File.Open() в предыдущей строке). Открывать файл заранее не только не нужно, но и неправильно. То же самое относится ко всем функциям File, которые не возвращают дескриптор файла, с которым вы работаете: File.ReadAllText() , File.WriteAllText() , File.ReadAllLines() , File. WriteAllLines() и другие (например, функции File.AppendAllXyz()) сами откроют и закроют файл.

Ваш процесс не единственный, кто имеет доступ к этому файлу.
Если ваш процесс не единственный, кто имеет доступ к этому файлу, тогда взаимодействие может быть сложнее. Поможет шаблон повторных попыток (если файл не должен быть открыт кем-либо еще, но он открыт, вам нужна утилита, такая как Process Explorer, чтобы проверить, кто делает что).

Как избежать

Когда применимо, всегда используйте операторы using для открытия файлов. Как сказано в предыдущем абзаце, это активно поможет вам избежать многих распространенных ошибок (см. этот пост для примера того, как его не использовать).

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

Не забывайте, что операции ввода-вывода всегда могут завершиться ошибкой. Типичный пример:

Если кто-то удалит файл после File.Exists(), но до File.Delete() , это вызовет исключение IOException в том месте, где вы можете ошибочно чувствовать себя в безопасности.

По возможности применяйте шаблон повтора, а если вы используете FileSystemWatcher , рассмотрите возможность отсрочки действия (поскольку вы получите уведомление, но приложение может по-прежнему работать исключительно с этим файлом). .

Расширенные сценарии
Это не всегда так просто, поэтому вам может потребоваться предоставить доступ кому-то еще. Если, например, вы читаете с начала и пишете до конца, у вас есть как минимум два варианта.

1) совместно использовать один и тот же FileStream с надлежащими функциями синхронизации (поскольку он не является потокобезопасным). См. этот и этот сообщения для примера.

2) используйте перечисление FileShare, чтобы указать ОС разрешить другим процессам (или другим частям вашего собственного процесса) одновременный доступ к одному и тому же файлу.

В этом примере я показал, как открыть файл для записи и поделиться им для чтения; обратите внимание, что когда чтение и запись перекрываются, это приводит к неопределенным или недействительным данным. Это ситуация, которая должна быть обработана при чтении. Также обратите внимание, что это не делает доступ к потоку потокобезопасным, поэтому этот объект нельзя использовать совместно с несколькими потоками, если доступ каким-либо образом не синхронизирован (см. предыдущие ссылки). Доступны и другие варианты обмена, и они открывают более сложные сценарии. Дополнительные сведения см. в MSDN.

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

Можно ли разблокировать файл, используемый другим процессом? Это не всегда безопасно и не так просто, но да, это возможно.

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

Процесс не может получить доступ к файлу, поскольку он используется другим процессом

Теперь, когда вы знаете, почему программа не может получить доступ к файлу, пришло время выяснить, какой процесс уже заблокировал их. Если ошибка связана с Центром обновления Windows и приложением «Фотографии», посмотрите решение в конце сообщения.

Чтобы найти блокировку, вам нужно будет использовать Process Explorer Sysinternal Suite.

Запустите программу Process Explorer и найдите значок с надписью «Найти процесс Windows». Перетащите значок и поместите его на файл, и он мгновенно покажет процесс.

Пожалуйста, щелкните правой кнопкой мыши процесс и завершите его.

Теперь, когда вы пытаетесь получить доступ к файлу с помощью вашей программы, она не выдает никаких ошибок.

Код обновления Windows 0x80070020

Если при обновлении или обновлении до Windows 10 вы получаете код ошибки 0x80070020, это означает, что файлы или ресурсы, необходимые для процесса обновления Windows, используются в другом месте. В полном сообщении об ошибке говорится:

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

Чтобы исправить эту ошибку, вам нужно будет использовать инструмент MSCONFIG, чтобы перевести компьютер в состояние чистой загрузки, а затем попытаться обновить его снова.

Ошибка приложения "Фото" 0x80070020

Аналогичная ошибка возникает и с приложением "Фотографии", когда оно не может сохранить файл, так как его использует другой процесс.Возможно, вам придется изменить имя файла или сохранить его в другом месте и т. д.

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

Дата: 26 ноября 2020 г. Теги: ошибки, процесс

Похожие записи

Исправить ошибку 0x80010105 в Windows 11/10

Исправить Недостаточно системных ресурсов для устранения ошибки API в Windows 11/10

Произошла системная ошибка 5, доступ запрещен в Windows 11/10

сообщить об этом объявлении

[электронная почта защищена]

Ашиш — опытный пользователь Windows и Xbox, который отлично пишет советы, приемы и функции, чтобы улучшить вашу повседневную работу с вашими устройствами.

Что такое ошибка «Процесс не может получить доступ к файлу, поскольку он используется другим процессом» в Windows 10?

В этом посте мы обсудим вопрос «Как исправить процесс не может получить доступ к файлу, поскольку он используется другой ошибкой процесса в Windows 10». Здесь вы найдете простые шаги/методы устранения ошибки. Давайте начнем обсуждение.

Ошибка «Процесс не может получить доступ к файлу, поскольку он используется другим процессом»: это распространенная проблема Windows, возникающая в версии операционной системы Windows, включая Windows Vista, Windows 7, Windows 8.1, Windows 10 и в различных версиях Windows Server. . Эта ошибка обычно появляется, когда вы пытаетесь запустить команду «Netsh» на вашем компьютере с Windows. Некоторые пользователи сообщают, что эта ошибка появляется, когда они пытаются щелкнуть правой кнопкой мыши веб-сайт в оснастке IIS (Internet Information Services) MMC (Microsoft Management Console).

Эта ошибка может быть вызвана несколькими причинами, в том числе необходимыми правами администратора, которые вы не предоставили команде, например команде Netsh, которую хотите запустить. Вы должны убедиться, что запускаете Netsh Command с правами администратора. Если на вашем компьютере запущены IIS (Internet Information Services), но не используется порт 80 или порт 443, поскольку эти порты используются некоторыми другими процессами, вы можете столкнуться с ошибкой «Процесс не может получить доступ к файлу, поскольку он используется другим процессом». .

Эта ошибка также может возникнуть, если определенные разделы/подразделы реестра настроены неправильно. Вы сталкиваетесь с этой ошибкой с IIS (Internet Information Services) на вашем компьютере с Windows, как правило, когда подраздел реестра «ListenOnlyList» не настроен должным образом. Вы можете перенастроить или изменить этот подраздел реестра, чтобы устранить проблему. Переходим к решению.

Как исправить Процесс не может получить доступ к файлу, поскольку он используется другим процессом в Windows 10?

Способ 1. Устранение неполадок ПК с Windows с помощью «Инструмента восстановления ПК»

Если эта ошибка возникла из-за каких-то проблем на вашем компьютере с Windows, вы можете попытаться исправить проблему с помощью «Инструмента восстановления ПК». Это программное обеспечение предлагает вам находить и исправлять ошибки BSOD, ошибки EXE, ошибки DLL, проблемы с программами/приложениями, проблемы с вредоносными программами или вирусами, проблемы с системными файлами или реестром и другие системные проблемы всего за несколько кликов. Вы можете получить этот инструмент через кнопку/ссылку ниже.

Способ 2. Запуск команды Netsh с правами администратора

Команда Netsh — эта команда позволяет отображать или изменять сетевую конфигурацию работающего в данный момент компьютера. Однако, если вы столкнулись с ошибкой при попытке запустить эту команду в командной строке, убедитесь, что команда выполняется с правами администратора, что означает, что вы открыли командную строку с правами администратора. Попробуйте это и проверьте, устранена ли ошибка.

Шаг 1. Нажмите клавиши «Windows + X» на клавиатуре и выберите «Командная строка от имени администратора».

Шаг 2. В открывшейся «Командной строке с правами администратора» введите команду, вызвавшую ошибку, или введите команду «netsh» и нажмите клавишу «Ввод» для выполнения

Шаг 3. Проверьте, выполняется ли эта команда и устранена ли ошибка.

Способ 3. Установите другой диапазон IP-адресов

Иногда ошибка команды Netsh возникает из-за конфликта с DNS. Вы можете попытаться решить проблему, попробовав другой диапазон IP-адресов вместо создания диапазона исключения.Для этого откройте «Командную строку от имени администратора», используя «шаг 1» описанного выше метода, и введите следующие команды одну за другой, чтобы решить проблему конфликта DNS.

netsh int ipv4 set dynamicport tcp start=10000 num=1000

netsh int ipv4 set dynamicport udp start=10000 num=1000

Способ 4. Устранение конфликта портов IIS

Как уже упоминалось, проблема с IIS (Internet Information Services) возникла из-за конфликта портов. Вы можете использовать утилиту Netstat.exe, чтобы проверить, использует ли другой процесс порт 80 и порт 443.

Как запустить утилиту Netstat.exe и проверить, не использует ли другой процесс порт 80 и порт 443?

Шаг 1. Откройте «Командную строку от имени администратора», используя «Метод 2»

Шаг 2. Теперь введите команду «netstat – ano» и нажмите клавишу «Enter» для выполнения. Это запустит утилиту Netstat.exe

Шаг 3. В появившихся результатах прокрутите списки «Активные подключения» и проверьте, активно ли порты 80 и 443 используются другим процессом. Если да, выполните следующие действия

Шаг 4. Закройте командную строку и нажмите клавиши Windows + R на клавиатуре, введите «regedit» в открывшемся диалоговом окне «Выполнить» и нажмите кнопку «ОК», чтобы открыть «Редактор реестра».

Шаг 5. В «Редакторе реестра» перейдите по следующему пути на левой панели

Шаг 9. После этого закройте «Редактор реестра» и перезагрузите компьютер.

Шаг 11. Теперь попробуйте снова запустить IIS (Internet Information Services) и проверьте, устранена ли ошибка.

Заключение

Я уверен, что этот пост помог вам в том, как исправить Процесс не может получить доступ к файлу, потому что он используется другой ошибкой процесса в Windows 10 с помощью нескольких простых шагов/методов. Вы можете прочитать и следовать нашим инструкциям, чтобы сделать это. Это все. Если у вас есть какие-либо предложения или вопросы, пишите в поле для комментариев ниже.

Читайте также: