Объяснение кода возврата от SHFileOperation()

ВСЕ,

Есть ли причина, по которой SHFileOperation() возвращает 32?

Мой сценарий:

Мой текущий путь: c:\foo\bar. Мой файл находится в папке c:\foo. Этот файл отправляется в корзину.

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

Я пробую это на 64-разрядной версии Windows 7 с MSVC 2010 Professional.

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

ТИА!


person Igor    schedule 12.09.2019    source источник


Ответы (2)


SHFileOperation возвращает ошибки, соответствующие значениям ошибок Winerror.h. 32 определяется как ERROR_SHARING_VIOLATION, что означает «Процесс не может получить доступ к файлу, поскольку он используется другим процессом». Это означает, что другой процесс получает доступ к файлу, который вы хотите изменить, вызывая SHFileOperation. Вы также можете использовать функцию поиска Process Explorer. чтобы узнать, какой процесс обращается к файлу, который вы хотите изменить.

person Norbert Willhelm    schedule 12.09.2019
comment
благодарю вас. Любая идея о том, как это проверить? Проблема в том, что я только что создал файл и вижу, что он существует в проводнике, но я не могу удалить его из-за этой ошибки. Я делаю набор тестов. - person Igor; 12.09.2019
comment
Вы можете использовать функцию Find Handle или DLL в Process Explorer, чтобы узнать, какой процесс обращается к вашему файлу. - person Norbert Willhelm; 12.09.2019
comment
являются ли они частью установки MSVC или внешних приложений? - person Igor; 12.09.2019
comment
Process Explorer принадлежит Microsoft Windows Sysinternals. - person Norbert Willhelm; 12.09.2019

Я сам пытаюсь найти список кодов!

Из моего тестирования (так что проверьте сами) 32 = файл используется или, возможно, файл заблокирован/защищен. (Создал excel wkbk, открыл, набрал текст, попытался удалить)

2 = не найдено 0 = проблем нет

4, 8, 16 коды возврата кажутся вероятными

person Expert Novice    schedule 12.09.2019
comment
Я только что нашел это: docs.microsoft.com/en-us/windows/win32/debug/ - person Expert Novice; 12.09.2019