DeleteFile kończy się niepowodzeniem w ostatnio zamkniętym pliku
Mam program z jednym wątkiem (C ++, Win32, NTFS), który najpierw tworzy dość długi plik tymczasowy, zamyka go, otwiera do odczytu, odczytuje, zamyka ponownie i próbuje usunąć za pomocąDeleteFile()
.
Zwykle idzie gładko, ale czasamiDeleteFile(
) nie, iGetLastError()
zwraca ERROR_ACCESS_DENIED. Plik z pewnością nie jest tylko do odczytu. Dzieje się tak na plikach o dowolnym rozmiarze, ale prawdopodobieństwo rośnie wraz z rozmiarem pliku.
Jakieś pomysły, co może blokować plik? Próbowałem narzędzi WinInternals, aby sprawdzić i nie znalazłem niczego podejrzanego.