Partage
  • Partager sur Facebook
  • Partager sur Twitter

Créer une fonction "dir" en C et renommer un fichier d'après une variable

Sujet résolu
Anonyme
    5 novembre 2006 à 17:40:17

    Bonjour, j'aimerais savoir s'il était possible de faire une fonction, en C, du même style que la commande "dir" de MS-DOS... Et si possible si cette fonction pourrait afficher qu'un seul type de fichiers.

    Je voudrais faire un truc du genre :


    if (afficherFichier(txt)) //On demande s' il y a des fichiers txt dans le répertoire courrant
        //Si oui, on les affiche
    else
       printf ("Il n'y a aucun fichier");


    Je voudrais aussi savoir si l'on pouvais renommer un fichier selon une chaine de caractères, et si oui, comment ? Je m'explique :


    char nomFichier[20];
    FILE* fichier = NULL;

    fopen("nouveauFichier.txt","w+");

    if (fichier != NULL)
    {
       printf ("Donnez un nom à votre fichiers svp :   ");
       scanf ("%s", nomFichier);
       rename("nouveauFichier.txt", "%s", nomFichier); /*Et voilà je voudrais faire un truc de ce genre, mais en possible */




    Merci d'avance pour vos réponses...
    • Partager sur Facebook
    • Partager sur Twitter
      5 novembre 2006 à 17:50:18


      rename("nom_du_fichier.txt", ta_variable);

      ^^
      Pour ce qui est de dir, penche-toi sur dirent
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        5 novembre 2006 à 18:04:13

        Merci pour dirent ;)
        J'ai voulu faire comme tu m'as dit, donc mon code est celui-ci
        rename("nouveauFichier.ntp", nomFichier);

        mais ça marche toujours pas, mon fichier a toujours le nom de "nouveauFichier.ntp" après l'execution du programme... comprend pas

        • Partager sur Facebook
        • Partager sur Twitter
          5 novembre 2006 à 18:08:46

          Quelques problèmes :
          • Tu ne retiens pas en mémoire le résultat de fopen().
          • Tu souhaites renommer un fichier sur lequel tu viens de créer un flux avec fopen() ...
            Normal que ça ne marche pas.
          • Les modes + sont déconseillés, préfère ouvrir plusieurs fois dans différents modes si besoin.
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            5 novembre 2006 à 18:11:52

            DSL, sur mon IDE, j'ai bien retenu le résultat de fopen() en mémoire, mais pas sur le code du forum :s
            • Partager sur Facebook
            • Partager sur Twitter
              5 novembre 2006 à 18:15:22

              Tu ne peux pas renommer le fichier que tu as ouvert, il faut que tu le fermes avant :)
              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                5 novembre 2006 à 18:32:33

                Pour faire un truc style

                rename("nouveauFichier.txt", "%s", nomFichier);


                fais :


                char *nomFichier, *variableScanf;
                scanf("%s", variableScanf);

                sprintf(nomFichier, "%s", variableScanf);
                rename("ancienfichier.mp3", nomFichier);
                • Partager sur Facebook
                • Partager sur Twitter
                  5 novembre 2006 à 19:37:33

                  Citation : GuilOooo


                  char *nomFichier, *variableScanf;
                  scanf("%s", variableScanf);

                  sprintf(nomFichier, "%s", variableScanf);
                  rename("ancienfichier.mp3", nomFichier);

                  NON !

                  Merci de ne pas raconter des énormités aux débutants. C'est déjà assez difficile comme ça. Si tu ne sais, pas, tu écoutes et tu apprends...

                  nomFichier et variableScanf sont des pointeurs non initilisés. Tu espères quyoi au juste ? Un miracle ?

                  Le comportement est indefini. Point.

                  Relire ses cours de C.
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Music only !

                  Créer une fonction "dir" en C et renommer un fichier d'après une variable

                  × 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