Ho un programma a thread singolo (C++, Win32, NTFS) che crea un file temporaneo piuttosto lungo, lo chiude, apre per leggere, legge, si chiude nuovamente e tenta di eliminare utilizzando DeleteFile()
.DeleteFile non riesce sul file chiuso di recente
In genere, senza problemi, ma a volte DeleteFile(
) non riesce e GetLastError()
restituisce ERROR_ACCESS_DENIED. Il file non è di sola lettura di sicuro. Succede su file di qualsiasi dimensione, ma la probabilità aumenta con le dimensioni del file.
Qualche idea su cosa potrebbe bloccare il file? Ho provato gli strumenti di WinInternals per controllare e non ho trovato nulla di sospetto.
Sei sicuro si sta chiudendo il file in modo corretto prima di tentare di eliminarlo? Hai perso qualche manico? – RageZ
Come ho detto, l'ho controllato anche con gli strumenti di WinInternals. Tutte le aperture sono abbinate a chiude, ma la cancellazione non riesce. E l'aggiunta di dormire per 1 secondo risolve il problema. –
Potrebbe essere Windows essere buggy ma sono piuttosto dubbioso su questo. se l'aggiunta di "sleep" lo fa funzionare dovrebbe andare bene ^^ – RageZ