В целях тестирования и моделирования я хотел бы удалить файл, который в данный момент открыт моим процессом.
Документы CreateFile указывают, что можно открыть файл в режиме (FILE_SHARE_DELETE
), который позволяет файлу, на который указывает дескриптор открытия, быть удаленным другой операцией. (И я уже попробовал и подтвердил это через CreateFile (FILE_SHARE_DELETE) + DeleteFile.)
Что я хотел бы знать сейчас, так это то, возможно ли вообще, чтобы файл, открытый кем-либо без вышеуказанного флага, был каким-либо образом удален?
Насколько я понимаю, DeleteFile docs было бы невозможно с этими функциями, так как
Функция DeleteFile завершается ошибкой, если приложение пытается удалить открытый файл
для обычного ввода-вывода или в виде файла с отображением в памяти.
Есть ли другой способ удалить файл, который открыт, но не имеет установленного флага FILE_SHARE_DELETE?