yann_lo_san
Messages postés1137Date d'inscriptionlundi 17 novembre 2003StatutMembreDernière intervention23 janvier 201626 28 déc. 2006 à 13:08
Windows interdit la réouverture d'un fichier qui n'aurait pas le même mode d'accès que l'ouverture première.
Essayes d'ouvrir avec :
CreateFile(.., OPEN_EXISTING)
Puis récupère de suite l'erreur avec :
GestLastError()
Ceci te diras pourquoi tu ne peux pas l'ouvrir, à toi de réajuster les flags.
Mais peut etre que le fichier en question ne supporte pas le mode partagé (share_read).
cs_akim77
Messages postés73Date d'inscriptionlundi 12 avril 2004StatutMembreDernière intervention17 septembre 20084 28 déc. 2006 à 15:12
Essayes avec Unlocker (http://ccollomb.free.fr/unlocker/) c'est gratuit.
Cà te donnera le nom du programme qui a ouvert le fichier avant toi.
Je ne sais hélas pas comment çà marche , mais c'est efficace.
Kurpeus1
Messages postés42Date d'inscriptionlundi 16 octobre 2006StatutMembreDernière intervention21 mars 2007 28 déc. 2006 à 16:51
Quand un fichier est bloqué par windows, tu peux le détruire en passant par la console en ayant préalablement tué le processus explorer. Peut être que en tuant le processus, tu pourras lire le fichier avec la console et edit
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 28 déc. 2006 à 19:56
Pour ouvrir un fichier deja ouvert par un autre prog, il faut que celui ci ait laissé l'accès au moins par FILE_SHARE_READ. S'il a été ouvert avec 0 en dwShareMode de CreateFile c'est que le prog veut un accès exclusif et donc impossible d'avoir un accès concurrent tant que le prog ne ferme pas le handle ou que le prog n'est pas fermé.
Il en va ainsi pour de nombreux fichiers dont Windows maintient un accès exclusif.