IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

vérifier si un fichier existe


Sujet :

C++

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2003
    Messages : 315
    Points : 105
    Points
    105
    Par défaut vérifier si un fichier existe
    Bonjour tout le monde, je voudrais savoir quelle méthode pourrait me dire si un fichier existe ou non.
    dans la faq, ils disent d'utiliser ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    CString sPath = currDoc->GetPathName();
    	FILE *fp = fopen(sPath,"r");
     
    	if (fp == NULL)
    	{
       		//fichier inexistant	}
    	else
    	{
    		fichier existant
    		fclose(fp);
    	}
    mais ça fait boguer mon application puisqu'il essaye d'ouvrir un fichier qui n'existe pas....
    savez vous comment je pourrais faire?

  2. #2
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut Re: vérifier si un fichier existe
    La premiere question que je me pose, c'est pourquoi verifier si un fichier existe? Si c'est pour le lire apres, il faudra de toute maniere etre capable de gerer le cas ou il aura ete efface entre le test d'existence et l'ouverture. Alors pourquoi ne pas se contenter de mettre la gestion a cet endroit?

    La deuxieme question, est bien sur que generalement, le test d'existance n'est pas ce qu'on desire. On desire plutot savoir si le fichier est accessible, ce qui est different. En fait, dans le cas general, il est possible que ce soit impossible de verifier l'existance (si on n'a pas les droits necessaires sur le repertoire par exemple).

    Enfin, je ne vois pas de raison pour laquelle le code presente (qui teste la possibilite d'ouvrir en lecture et non l'existance) bloque.
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2003
    Messages : 315
    Points : 105
    Points
    105
    Par défaut
    euh.. ben en fait c'Est un genre éditeur de texte en fait. Et l'utilisateur peut ouvrir un document(Et alors on connait son chemin) ou créer un nouveau document.
    seulement, un option lui permet de faire une opération sur le document courant. Pour effectuer cette opération, on a besoin du chemin du document.
    Mais lorsque le document est nouveau, il a beau exister mais il n'Est pas sauvegarder et son chemin est ""...
    alors je me demandais si je ne pouvais pas utiliser une fonction me permettant de me dire vrai ou faux si le chemin est valide..
    je sais que je peux vérifier si le chemin = "" ou non, ou bien vérifier si le document est sauvegarder, mais je croyais qu'avec ceci ça aurait pu marcher. mais mon application bogue a la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FILE *fp = fopen(sPath,"r");
    donc j'ai compris, je vérifirait si il est suavegarder ou non

  4. #4
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 750
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 750
    Points : 10 667
    Points
    10 667
    Billets dans le blog
    3

  5. #5
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par FAQl
    La dernière ligne de la fonction is_readable peut surprendre. La comparaison avec zéro permet de tester si le flux a été ouvert ou non (il est préférable de faire ce test que de passer par une conversion implicite en bool car cette dernière génère un avertissement sur certains compilateurs).
    Quelques remarques:
    • il n'y a pas de conversion implicite de basic_ios en bool, mais une conversion implicite en void*
    • le code montre utilise cette conversion implicite (le 0 ci-dessus est un pointeur nul)
    • si on ne veut pas utiliser (ce que je comprends mais qui est vraissemblablement la maniere la plus idiomatique de faire) pourquoi ne pas utiliser
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      return !fichier.fail();
      qui est a le meme effet et est plus clair? La version de la FAQ me semble etre la pire des 3...
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  6. #6
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 750
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 750
    Points : 10 667
    Points
    10 667
    Billets dans le blog
    3
    Par défaut
    C'est noté. Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Vérifier que un fichier existe
    Par Wolfgang31 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/08/2007, 09h14
  2. vérifier qu'un fichier existe
    Par youp_db dans le forum C
    Réponses: 5
    Dernier message: 16/05/2007, 01h22
  3. Vérifier si un fichier existe
    Par iwf-fr dans le forum Langage
    Réponses: 2
    Dernier message: 10/12/2006, 16h32
  4. Vérifier si un fichier existe déjà
    Par Kr00pS dans le forum C
    Réponses: 9
    Dernier message: 16/07/2006, 14h29
  5. Réponses: 3
    Dernier message: 14/06/2006, 10h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo