Проверьте, открыт ли указатель файла, а затем удалите его в C++

Несмотря на то, что я прочитал несколько ранее отвеченных вопросов, касающихся аналогичной проблемы, я еще не знаю, как действовать дальше. Это сценарий:

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

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

или есть другой способ справиться с ситуацией??

1 ответ

Решение

Если вы используете ОС Windows, вы можете использовать функцию MoveFileEx.
Это позволяет вам пометить файл для удаления после перезагрузки.

MoveFileEx(lpExistingFileName, NULL, MOVEFILE_DELAY_UNTIL_REBOOT);
Другие вопросы по тегам