Ошибка операционной системы 32 процесс не может получить доступ к файлу

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

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

Почему “Процесс не может получить доступ к файлу”?

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

Как удалить файл, если процесс не может получить доступ к файлу?

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

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

Как можно решить проблему «процесс не может получить доступ к файлу»:

  • Unlocker – специальная программа, созданная как раз для подобных ситуаций. Она автоматически обнаруживает связанные с файлом процессы и завершает их. По сути она делает то же самое, что нужно выполнять вручную, но только в автоматическом режиме. Она имеет минимальный размер и проверена во многих системах, поэтому точно не заражена вирусами. После скачивания и установки, нужно нажать правой кнопкой мыши по файлу и выбрать «Unlock».
  • Завершить связанные процессы. Обычно вполне реально догадаться, какая именно задача использует файл. Для этого нужно открыть Ctrl + Shift + Esc и развернуть список «Подробнее». Здесь будет довольно много процессов, но большинство из них системные, нужно найти те, которые были запущены пользователем. Чтобы удалить файл кэша Google Chrome, нужно закрыть все задачи Google. Для их завершения нужно нажать правой кнопкой мыши и выбрать «Снять задачу».

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

  • Установить правильные атрибуты. К каждому файлу можно установить подходящие привилегии. Нужно нажать правой кнопкой мыши по файлу и на вкладке «Общие» установить пункт «Только чтение». После перезагрузки компьютера возможность удаления может появиться.
  • Удаление в безопасном режиме. Очень часто это срабатывает, так как при данном способе запуска система не загружает все посторонние программы. Нужно кликнуть на перезапуск ПК и в момент пуска нажать клавишу F8 (может быть другая) для выбора варианта запуска. В безопасном режиме удалить можно практически любой файл.
  • Снять защиту диска на запись. Она может быть установлена на программном и физическом уровне. Первым делом нужно посмотреть на накопителе (обычно это флешка), нет ли здесь специального тумблера. Рядом должна быть соответствующая пометка. В системе в редакторе реестра также следует найти параметр WriteProtect и установить ему значение 0.

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

Как исправить проблему при использовании консоли и IIS?

Точно такая же самая ошибка «процесс не может получить доступ к файлу» может появиться при запуске команды netsh или при выполнении настройки сайта IIS. В таком случае проблема может быть вызвана недостатком прав для выполнения действия, попытке подключения к занятым портам 80 и 443 или некорректной настройкой реестра.

3 способа исправить ошибку:

  • Запустить консоль с повышенными привилегиями. Для этого в меню Пуск нужно ввести «Командная строка» и выбрать «Запуск от имени администратора».
  • Переключиться на другой пул IP-адресов. Также это может сработать при конфликте между DNS и Quickbooks. Достаточно выполнить команду netsh int ipv4 set dynamicport tcp start=10000 num=1000 – затем такую же самую, но вместо tcp следует ввести udp.
  • Устранить конфликты портов. Следует запустить консоль с правами админа, вставить netstat -ano и посмотреть, заняты ли порты 80 и 443. Если они не задействованы, придется перейти по пути HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesHTTPParametersListenOnlyList в редакторе реестра. Теперь в консоли следует ввести net stop http и в параметре реестра ListenOnlyList нужно оставить только 0.0.0.0. Остается только запустить службу повторно net start http. Если порты заняты, нужно их либо освободить, либо переопределить.

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

Перечисленных выше действий достаточно, чтобы исправить проблему «Процесс не может получить доступ к файлу». После выполнения процедур удастся либо удалить файл, либо восстановить нормальную работу Windows IIS 6.0 и 7.0.

Updated by
Daisy on Feb 22, 2023 

Whenever I attempt to format the SD card with guiformat, I get the error below:

Error:

Failed to open device

GetLastError()=32

The process cannot access the file because it is being used by another process.

— from Gbatemp

Have you ever encountered this situation when you are using Guiformat? If you have met the «failed to open device getlasterror()=32» error and don’t know how to solve it, this article will provide you with the best solution.

why-is-failed-to-open-device-getlasterror

Guiformat utility is also known as FAT32 Format utility. The FAT32 file system is mainly used to format disks larger than 32G. However, sometimes there are errors when using this command. Before we explain how to do it, we need to know why the error «failed to open device getlasterror()=32» appears. There are two main reasons for this.

1. The file or program is being used in another program.

2. There is no administrator privilege to run the FAT32 utility.

How to solve these two problems? Don’t worry. It’s very simple. Keep reading!

How to Fix the «Failed to Open Device Getlasterror()=32» Error? 

We have analyzed two reasons why «failed to open device getlasterror()=32» may occur. You need to close files and programs or run FAT32 Format as administrator. You can follow the steps below.

Guide 1. Close Files or Programs

If the tool detects that a file is being used by another process, you can fix the «failed to open device getlasterror()=32» error by closing one of the programs. You can either click the «X» icon in the upper right corner of the program or disable the program.

Step 1. Open the Windows button and click on «Apps.»

Step 2. Select «Startup» at the bottom.

Step 3. Select the file you want to close and click the «On» button on the right side.

choose-apps-startup

Step 4. Close the «Settings» window.

Step 5. Restart your computer to see if the «failed to open device getlasterror()=32» error is fixed.

In addition, you can also end the task by opening «Task Manager» and clicking on «End task.» 

Guide 2. Run with Admin Rights 

Another reason for the «failed to open device getlasterror()=32» error is that you are not running with administrator privileges. If you have closed another program, or if no other program is running, you can try running the guiformat.exe file with administrator privileges. The operation requires only two steps.

Step 1. Find the Guiformat file, and then right-click on it to select «Run as administrator.»

run-as-admin

Step 2. Open FAT32 Format and try to format the drive again.

Okay, now you can see if there are still error messages. After you have tried to close the files and programs and run FAT32 Format as administrator, if it cannot solve this problem, you can try other alternatives to format. 

Professional Alternative to Fix «Failed to Open Device Getlasterror()=32» Error

When you can’t format with Guiformat, you can also format with other tools on Windows. Here I recommend a simple but professional software: EaseUS Partition Master Free. We can see why we choose it by the following comparison.

Comparison EaseUS Partition Master Guiformat (or FAT32 Format)
Supported File Systems NTFS, EXT2/3/4, FAT12/16/32, ReFS, exFAT FAT32
Supported Operating Systems Windows 11/10/8.1/8/7/Vista/X Win7/WinXP/Win10

We can see that EaseUS Partition Master supports formatting more file systems and can finish formatting at a faster speed. It can support various systems. And it is also very easy to operate. Here are the steps for it.

  • Right-click the external drive or USB you intend to format and choose «Format».
  • Set the Partition label, File system (NTFS/FAT32/EXT2/EXT3/EXT4/exFAT), and Cluster size, then click «OK».
  • Click «Yes» to continue.
  • Click the «Execute 1 Task(s)» button and click «Apply» to format the hard drive partition.

What Else Can EaseUS Partition Master Do?

Regarding formatting, EaseUS Partition Master supports a wide range of file system format.  In addition, as an all-in-one disk performance optimizer, it also has the following features: 

  • Initialize disks to MBR/GPT
  • Upgrade disks without losing data
  • Easily wipe disk partitions and data
  • Convert NTFS to FAT32 without data loss.
  • Check disk and repair corrupted file systems
  • Convert primary partitions to logical directly

All in all, EaseUS Partition Master is a disk management software that is well worth trying. It is perfect as an essential tool for managing disks on your computer.

Conclusion

Guiformat (also known as the FAT32 Format tool) is a convenient and free tool to easily set file formats larger than 32GB to the FAT32 file system. But make sure that only one file or program is opened. Otherwise, you will receive an error like «failed to open device getlasterror()=32».

If you can’t solve the Guiformat problem, don’t worry. This article also provides the best alternative to Guiformat: EaseUS Partition Master, which offers a faster and more comprehensive disk formatting feature. In addition to FAT32, it also supports more file system formats.

FAQs About Failed to Open Device Getlasterror()=32

This article solves the problem you will meet when formatting to FAT32 with Guiformat. Here are some more questions about the FAT32 format.

1. What is FAT32?

FAT32 is a disk format or file system that is a 32-bit version of the FAT file system. It is widely used for USB drives, flashcards, and external hard drives.

2. What is the FAT32 format tool?

This free and convenient program can format hard drives, SD cards, and USBs over 32GB to the FAT32 file system.

3. Can a 2 TB drive be formatted in FAT32?

Of course, you can format a 2TB drive to FAT32. But Disk Management, Diskpart, and File Explorer only support drives smaller than 32GB. So, you can choose the FAT32 Format tool.

У меня есть код, в котором я пишу в файл, и при следующем запуске кода после успешного выполнения кода я получаю следующую ошибку:

PermissionError: [WinError 32] The process cannot access the file because it is being used by another process:’minicube_HE022222.fits’

Так что каждый раз мне приходится менять имя файла подгонки, и тогда ошибок нет. Просто очень неприятно менять имя файла каждый раз, когда я запускаю код. Вот мой фрагмент кода:

Я получаю сообщение об ошибке:

Я закрываю файл после записи в него, но это тоже не помогает. Любые предложения приветствуются.

Вот еще одна часть кода, в которой возникает эта ошибка:

Ошибка возникает только в «xxx.writeto». Если есть другой способ записи в файл или обновления существующего файла новыми данными, сообщите мне. Спасибо

В общем, модель ввода-вывода Windows требует совместного доступа на чтение / выполнение, запись / добавление и удаление файлов, то есть все объекты File с доступом к данным должны взаимодействовать друг с другом. Сам Windows Python предоставляет доступ для чтения и записи, но не для удаления. Я не знаю, что делает fits или почему файл остается открытым после выхода из сценария, но вы захотите поискать вызовы CreateFile . В частности, ищите доступ, который они запрашивают (например, GENERIC_READ или DELETE ), и доступ, которым они делятся (например, FILE_SHARE_READ ).

Краткое мета-примечание: в StackOverflow вы можете форматировать блоки кода, делая отступ в каждой строке на четыре пробела. Обратные кавычки предназначены только для форматирования слов в парграфе как код like this . Я почистил для вас форматирование. См. stackoverflow.com/editing-help#code

Откуда берутся массивы mini_data и mini_error ?

Формы c голосовым вводом в React с помощью Speechly

Flatpickr: простой модуль календаря для вашего приложения на React

Что такое cURL в PHP? Встроенные функции и пример GET запроса

Ответы 1

Как отмечает этот комментарий, способ работы файлового ввода-вывода в Windows таков, что вы не можете перезаписать файл, если этот файл уже открыт в другом процессе. Вы пишете этот файл и открываете его в другой программе? Если у вас есть этот файл, открытый в любой другой программе, вы не сможете его перезаписать.

Вам нужно иметь возможность обновлять файл на месте, пока он открыт в другой программе? Если это так, это все еще возможно, но вы не можете использовать HDUList.writeto() , поскольку он эффективно удаляет существующий файл и заменяет его новым (вместо обновления существующего файла на месте).

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

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

Помимо одного небольшого использования:

new_hdu.close() в вашем примере на самом деле ничего не делает. Метод HDUList.close() имеет смысл только тогда, когда вы открываете существующий файл FITS с диска. Здесь вы создаете HDUList (структура данных, представляющая файл FITS) в памяти и вызываете высокоуровневый HDUList.writeto() , который открывает файл, записывает данные в памяти в этот файл и закрывает файл. Так что .close() в этом случае не работает. Я предполагаю, что, возможно, вы добавили его, чтобы попытаться решить свою проблему, но на самом деле это не актуально.

Да, я новичок в этом, поэтому я пытался как-то закрыть его с помощью hdu.close (), который, как вы сказали, не работает. В любом случае, я запускаю код в скрипте на Spyder. Такая же ошибка возникает, когда ничего, кроме Spyder, тоже не открыто. Я мог бы добавить что-нибудь к имени, но это просто продолжит создавать новые файлы, чего я пытаюсь избежать.

Как вы работаете в контексте Spyder? Я думаю, вам нужно обновить свой вопрос, добавив более подробную информацию и / или посмотреть, какие другие процессы обращаются к этим файлам (если, например, файл находится в каталоге, отслеживаемом Dropbox или Google Диском, или если он сканируется вирусом сканер, который тоже может вызвать это).

Все хорошо, исправил. Я просто передаю ошибку сейчас и работаю каждый раз. Спасибо.

Вот что я делаю. Сработает ли это? попробуйте: hdu.writeto (‘filename.fits’, overwrite = True) except PermissionError: pass

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

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

Код, который я разместил выше, является примером. Я отправлю еще одну часть кода, где у меня возникает эта ошибка; проверьте обновление выше. Нужно ли мне публиковать полный код? Потому что все остальное работает. Это как раз то, где я пишу в файл, где возникает эта ошибка.

Вы уверены, что у вас нет антивирусного сканера, Dropbox или чего-то еще, имеющего доступ к файлам? Единственный ответ, который я могу вам дать, это то, что какой-то другой процесс в вашей системе обращается к этим файлам, когда вы пытаетесь писать в них.

Я также сталкивался с этой проблемой раньше с помощью программного обеспечения для автоматического резервного копирования (например, аварийного плана).

PermissionError: [WinError 32] Процесс не может получить доступ к файлу, потому что он используется другим процессом.

Просто чтобы подтвердить, Python — единственная программа, работающая на моем компьютере. Что вызывает эту проблему и как ее исправить?

Ваш процесс — это тот, у которого файл открыт (через im все еще существующий). Вам нужно сначала закрыть его, прежде чем удалять.

Я не знаю, поддерживает ли PIL with контексты, но если да:

Это обязательно удалит im (и закроет файл), прежде чем вы доберетесь до os.remove .

Если это не так, вы можете попробовать Pillow, поскольку разработка PIL практически мертва.

PermissionError: [WinError 32] The process cannot access the file because it is being used by another process

Just to confirm, Python is the only program running on my computer. What is causing this problem and how do I fix it?

user avatar

5 Answers 5

Your process is the one that has the file open (via im still existing). You need to close it first before deleting it.

I don’t know if PIL supports with contexts, but if it did:

This will make sure to delete im (and close the file) before you get to os.remove .

If it doesn’t you might want to check out Pillow, since PIL development is pretty much dead.

SQL Server 2014 Enterprise — duplicate (do not use) SQL Server 2012 Service Pack 3 SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Enterprise Core SQL Server 2012 Standard SQL Server 2016 Developer — duplicate (do not use) SQL Server 2016 Enterprise — duplicate (do not use) SQL Server 2016 Enterprise Core — duplicate (do not use) SQL Server 2016 Express — duplicate (do not use) SQL Server 2016 Standard — duplicate (do not use) Еще…Меньше

Проблемы

При восстановлении базы данных из чередующегося резервного архива, содержащего данные FILESTREAM, в SQL Server 2012 с пакетом обновления 3 (SP3), 2014 или 2016 появляются сообщения об ошибках, аналогичные указанным ниже.

Сообщение 3634, уровень 16, состояние 1, строка 2The операционная система вернула ошибку «32 (процесс не может получить доступ к файлу, так как он используется другим процессом.)» При попытке выполнить команду OpenFile для FILE_PATH. Сообщение 3013, уровень 16, состояние 1, строка 2RESTORE база данных завершается аварийно.

Решение

Эта проблема исправлена в перечисленных ниже накопительных обновлениях для SQL Server.

  • Накопительное обновление 2 для SQL Server 2016

  • Накопительное обновление 5 для SQL Server 2012 с пакетом обновления 3 (SP3)

  • Накопительное обновление 1 для SQL Server 2014 с пакетом обновления 2 (SP2)

  • Накопительное обновление 8 для SQL Server 2014 с пакетом обновления 1 (SP1)

Статус

Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе «Применяется к».

Ссылки

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

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

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

Всем привет.
Просьба помочь.

Созадал БД:

CREATE DATABASE NorthPole ON PRIMARY (

  NAME = NorthPoleDB,

  FILENAME = 'D:NorthPoleDB.mdf'
)

Создал там таблицу и записал туда данные:

use NorthPole;
CREATE TABLE pol(id int);
INSERT INTO pol VALUES(1),(6),(5);
SELECT * FROM pol;

Теперь, допустим, мне нужно создать новую БД, скопировав существующую (без варианта перейменовки).

use current_db
CREATE DATABASE SomeDB
ON (FILENAME = 'D:NorthPoleDB.mdf')
FOR ATTACH

Ошибка

Сообщение 5120, уровень 16, состояние 101, строка 20
Не удалось открыть физический файл «D:NorthPoleDB.mdf». Ошибка операционной системы 32: «32(Процесс не может получить доступ к файлу, так как этот файл занят другим процессом.)».

  • Ошибка операции моделирования автокад
  • Ошибка оператора canon ip4200
  • Ошибка операционной системы 3 системе не удается найти указанный путь sql
  • Ошибка операции моделирования error code number is 84015
  • Ошибка оператора canon ip3500