J'ai un seul programme fileté (C++, Win32, NTFS) qui crée d'abord un fichier temporaire assez long, le ferme, ouvre pour lire, lit, se referme et essaie de supprimer en utilisant DeleteFile()
.DeleteFile échoue sur le fichier récemment fermé
Habituellement, ça se passe bien, mais parfois DeleteFile(
) échoue, et GetLastError()
renvoie ERROR_ACCESS_DENIED. Le fichier n'est pas seulement en lecture seule. Cela arrive sur des fichiers de n'importe quelle taille, mais la probabilité augmente avec la taille du fichier.
Des idées sur ce qui peut verrouiller le fichier? J'ai essayé les outils WinInternals pour vérifier et trouvé rien de suspect.
Êtes-vous sûr que vous fermez le fichier correctement avant d'essayer de le supprimer? Avez-vous manqué des poignées? – RageZ
Comme je l'ai dit, j'ai même vérifié cela avec les outils WinInternals. Toutes les ouvertures sont associées à des fermetures, mais la suppression échoue. Et ajouter dormir pendant 1 seconde résout le problème. –
Ce pourrait être des fenêtres buggy mais je suis un peu douteux à ce sujet. si l'ajout de 'sleep' devrait fonctionner correctement ^^ – RageZ