comment verifier existence d'un fichier en c ? - C++ - Programmation
Marsh Posté le 15-11-2002 à 15:04:15
C DOS/générique ou C Windows ?
Sous windows 16 bits (puis 32), je m'étais bricolé un module
void TestSiFichierExiste(char *szNomFich)
{
// teste si fichier szNomFich existe
OFSTRUCT TOf;
memset(&TOf, 0, sizeof(OFSTRUCT));
if ((OpenFile((LPSTR)szNomFich, &TOf, OF_EXIST)) == HFILE_ERROR)
LastError = ERR_ABSN; // fichier introuvable
else
LastError = ERR_ZERO;
}
// fin de module TestSiFichierExiste
Les ERR_ sont des variables perso, LastError une variable globale réservée à ça...
Y a sans doute mieux avec les API 32 bits. Ca tourne chez moi d'abord en 16 bits.
le if(fopen..... == NULL), il est en mode read ?
Marsh Posté le 15-11-2002 à 15:09:35
Merci, ca marche sous le compilo C++
mais pas ds le logiciel de test dont je me sers :'(
Le fopen, j'ai essayé dans tous les modes ...
et chui en 2000
Marsh Posté le 15-11-2002 à 15:12:50
Le fopen ne gère pas les noms longs (je dis ça, à vérifier). Le nom cherché est pas "long" ? Avec des espaces à gogo et des répertoires verbeux ?
Y a une API pour les "compacter" en truc~1.xyz.
Ca vient pas du logiciel de test ?
Marsh Posté le 15-11-2002 à 15:15:02
duncan069 a écrit a écrit : le compilateur dont je dispose me colle une erreur kan je fais un if(fopen..... =NULL) ... kan le fichier n'existe pas ... |
tu m'expliques comment a la compilation tu peux savoir si le fichier existera a l'execution ?
Marsh Posté le 15-11-2002 à 15:17:58
justement, a l'execution, je n'en sais rien c pour ca ke je dois tester l'existence ...
et non, ce n'est pas un noom long ... il s'appelle simplement toto.txt pour mon test ...
Marsh Posté le 15-11-2002 à 15:18:45
duncan069 a écrit a écrit : justement, a l'execution, je n'en sais rien c pour ca ke je dois tester l'existence ... et non, ce n'est pas un noom long ... il s'appelle simplement toto.txt pour mon test ... |
t'as pas compris ce que je voulais dire
Marsh Posté le 15-11-2002 à 15:32:12
duncan069 a écrit a écrit : le compilateur dont je dispose me colle une erreur kan je fais un if(fopen..... =NULL) ... kan le fichier n'existe pas ... |
faudrait savoir...
si l'erreur est a l'exécution, le compilateur n'a rien a voir la dedans
Marsh Posté le 15-11-2002 à 15:38:05
avec un compilo microsoft ... il faut kan meme noter ke l'exe generé passe bien ...
Marsh Posté le 15-11-2002 à 15:39:06
bon, on avance...
et c'est quoi cette erreur ? t'as pas plus de détails ?
Marsh Posté le 15-11-2002 à 15:40:22
bon, décidément, je capte rien a ce que tu racontes, et je crois bien que c'est parce que tu comprends pas toi même ce que tu dis
Marsh Posté le 15-11-2002 à 15:49:22
duncan069 a écrit a écrit : sans vouloir te vexer, t naze ou tu fais expres ? :@ |
Marsh Posté le 15-11-2002 à 15:54:33
duncan069 a écrit a écrit : sans vouloir te vexer, t naze ou tu fais expres ? :@ |
Marsh Posté le 15-11-2002 à 15:55:15
ReplyMarsh Posté le 15-11-2002 à 15:56:03
On récapitule ??
Le programme, une fois compilé pour Windows 2000, cherche, quand on l'exécute un fichier toto.txt.
Ce programme compilé avec VC++ fonctionne très bien que toto.txt existe ou non, mais compilé avec un "prog de test" (???? compilo, environnement spécial qui fait cafouiller les prog Win32 ??), ça va plus quand toto.txt n'existe pas.
Si toto.txt existe, il fonctionne bien ????
Ma fonction me sert à savoir si j'ai ou pas un fichier .INI dans le répertoire où est mon appli. Si non, je prends val par défaut et le signale à l'utilisateur, et si oui, je lis les paramètres.
Marsh Posté le 15-11-2002 à 15:56:32
clique là et tes problèmes seront résolus
Marsh Posté le 15-11-2002 à 16:01:48
duncan069 a écrit a écrit : sans vouloir te vexer, t naze ou tu fais expres ? |
heu à mon avis c'est à toi qu'il faudrait poser la question, parce que tes posts ne sont pas clairs du tout
Marsh Posté le 15-11-2002 à 16:04:38
Et si le fichier existe, mais qu'on a pas le droit de lecture dessus ? Comment vont se comporter les fonctions ?
Marsh Posté le 15-11-2002 à 14:32:06
Comment verifier qu'un fichier erxiste en C ?
Paske le compilateur dont je dispose me colle une erreur kan je fais un if(fopen..... =NULL) ... kan le fichier n'existe pas ...
arf
Merci ..