FileExists retourne true alors que le fichier n'existe plus !

FileExists retourne true alors que le fichier n'existe plus ! - API Win32 - Programmation

Marsh Posté le 27-03-2014 à 16:02:10    

Bonjour à tous,
 
Je suis sous Windows 8 64 bits, j'utilise Borland C++ Builder 6, qui date un peu certes, mais qui me permet toujours de développer des applications.
Je ne pense pas que mon problème soit lié à Borland, mais plutôt à l'API Win32 et plus particulièrement à la fonction FileExists.
 
J'utilise (comme depuis des années) la fonction FileExists pour m'assurer de l'existence d'un fichier, et jusqu'à présent je n'ai jamais rencontré ce souci.
 
Aujourd'hui, sur un fichier particulier, qui existait, mais qui a été supprimé, FileExists me retourne toujours true et je peux toujours lire le contenu du fichier alors que le fichier n'existe plus !!
 
Le fichier était "C:\Program Files\UnDossier\UnFichier.lic"
 
J'ai tout tenté : supprimer le dossier "UnDossier", analyser le disque avec l'outil de Windows (aucune erreur détectée), redémarrer mon PC...
 
Où pensez-vous qu'il puisse rester des traces de ce fichier ??
 
Merci pour vos avis éclairés car là je deviens dingue  [:charles k:5]

Message cité 1 fois
Message édité par benj63 le 12-05-2014 à 10:16:21
Reply

Marsh Posté le 27-03-2014 à 16:02:10   

Reply

Marsh Posté le 27-03-2014 à 16:43:52    

Hmm, la fonction FileExists ne fait pas partie de l'API win32, mais plutôt de Borland. Perso, j'utilise la fonction "GetFileAttributesW()" pour tester l'existence de fichier.
 
Je ne sais pas comment tu crée ton fichier, mais si c'est un fichier temporaire et que tu gardes un descripteur ouvert, ton fichier restera sur le disque tant qu'il y a une application qui l'a ouvert d'une manière ou d'une autre (même comportement que sur Unix, d'ailleurs). Suivant le mode d'ouverture, l'effacement peut aussi être refusé.

Reply

Marsh Posté le 27-03-2014 à 16:49:51    

J'ai pourtant redémarré mon ordinateur, le descripteur ne peut pas rester ouvert malgré tout, si ?? :sweat:

Reply

Marsh Posté le 27-03-2014 à 21:31:09    

Possible que le fichier soit caché ou lieu d'être effacé. As-tu essayé d'y accéder en ligne de commande ?

Reply

Marsh Posté le 06-05-2014 à 15:53:42    

Le fichier est-il présent dans C:\Users\<NomUser>\AppData\Roaming\UnDossier\ ?

Reply

Marsh Posté le 07-05-2014 à 00:45:02    

benj63 a écrit :

Bonjour à tous,
Le fichier était "C:\Program Files\UnDossier\UnFichier.lic"


Sous un system 64 bit, "program file" est accessible uniquement par défaut au programme 64 bits, "program files (x86)" l'est au programme 32 bits. Windows fait la redirection de manière automatique....
Avez vous vérifier les deux répertoires?
De plus le dossier program files n'est pas fait pour stocker des fichiers "utilisateurs", il sont donc redirigées vers un autre répertoire  
-> http://www.networkinghowtos.com/ho [...] -location/
-> http://www.codeproject.com/Article [...] -UAC-Aware


Message édité par breizhbugs le 07-05-2014 à 00:53:48

---------------
Seul Google le sait...
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed