Partage
  • Partager sur Facebook
  • Partager sur Twitter

Vérifier si un fichier est existant

    3 avril 2019 à 1:44:37

    Bonjour à tous, je suis en ce moment en train de faire un programme qui répond a des question en lisant des bases de données(fichiers). Je voudrais savoir comment faire pour vérifier si le fichier est existant et s'il est non existant, il le crée. Merci de votre aide!

    -
    Edité par OlivierLebel2004 3 avril 2019 à 1:44:59

    • Partager sur Facebook
    • Partager sur Twitter
      3 avril 2019 à 1:50:41

      std::filesystem::exists

      Si ton but est de lire le fichier, le crée n'a pas d'utilité puisqu'il sera vide. Si ton but est d'écrire, l'ouvrir va le créer (il y a une option selon l'API utilisée). Finalement, vérifier si le fichier existe n'est pas utile.

      • Partager sur Facebook
      • Partager sur Twitter
        3 avril 2019 à 2:22:49

        mais le fichier contiendra une liste de mots et je ne veux pas que a chaque fois que le programme se compile, il écrase et refasse la liste.
        • Partager sur Facebook
        • Partager sur Twitter
          3 avril 2019 à 3:02:56

          Un programme qui se compile ne crée pas de fichiers en dehors des .o, bibliothèques et exécutable. Tu ne te tromperais pas avec l’exécution ou runtime ?

          > je ne veux pas que le programme écrase et refasse la liste.

          Si le programme est capable de générer la liste de mot -- qui par conséquent les connaît -- pourquoi passer par des fichiers ? Ou pourquoi est-ce le programme qui génère la liste au démarrage ?

          • Partager sur Facebook
          • Partager sur Twitter
            3 avril 2019 à 9:31:48

            Note : vérifier que le fichier existe avant de l'ouvrir est un typique cas de « situation de compétition ». Entre le moment où tu vérifies et le moment où tu ouvres le fichier il se peut qu'il ai été supprimé. Même si c'est peu probable, c'est pas impossible.

            Le meilleur moyen est tout simplement d'ouvrir le fichier avec l'option de création s'il n'existe pas. Ensuite tu le lis et si tu vois qu'il est vide tu gère le cas en indiquant que c'est une erreur.

            https://fr.wikipedia.org/wiki/Situation_de_comp%C3%A9tition

            https://en.cppreference.com/w/cpp/io/basic_filebuf/open

            • Partager sur Facebook
            • Partager sur Twitter

            git is great because Linus did it, mercurial is better because he didn't.

              6 avril 2019 à 13:11:30

              Pour compléter, et au passage éviter le problème de compétition, tu essaye de l'ouvrir, et si tu ne peux pas, c'est soit qu'il n'existe pas, soit que tu n'y as pas accès pour une raison quelconque (il est en cours d'utilisation, tu ne disposes pas des autorisations nécessaires pour y accéder...). Quoi qu'il en soit, si tu ne peux pas l'ouvrir, le fait qu'il existe ou pas n'a pas vraiment d'importance ;)

              -
              Edité par int21h 6 avril 2019 à 13:12:50

              • Partager sur Facebook
              • Partager sur Twitter
              Mettre à jour le MinGW Gcc sur Code::Blocks. Du code qui n'existe pas ne contient pas de bug

              Vérifier si un fichier est existant

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown