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 :

Gestion de fichiers et dossiers


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 3
    Par défaut Gestion de fichiers et dossiers
    Bonjour !

    J'ai besoin de votre aide... Il faut que je gère des fichiers a la maniere d'un .BAT avec les commandes CD MOVE MKDIR COPY etc.

    On m'impose l'architecture :


    Au départ, dossier_racine contient dossier3
    dossier3 contient les dossiers 4,5,6
    dossier4 contient fichier1.txt
    dossier5 contient les fichiers 2 et 3

    Je dois regarder une sequence dans fichier1.txt et créer un nouveau
    dossier en fonction de cette sequence : çà fonctionne. J'ai utilisé
    mkdir(nom) et une procédure.

    Une fois le nouveau dossier(=dossier10) créé dans dossier4, je dois copier
    les dossiers 5 et 6 ainsi que leur contenu dans dossier10 et puis déplacer dossier10 dans dossier_racine.

    Enfin, quand dossier10 est conforme, je dois le copier dans "c:\program files\System\Sys AC" .

    Le dossier "Sys AC" n'existe pas au départ.


    J'ai plusieurs problèmes :

    1) placé dans dossier_racine\dossier3\dossier4,
    j'ai pensé à system("cd dossier10") pour accéder a dossier10 puis y copier les dossiers mais "rien ne se passe..."

    2) j'ai voulu créer directement le dossier "c:\program files\System\Sys AC"

    de deux manières :

    2.1)
    char tmp[100];
    sprintf(tmp,"%cc:%cprogram files%cSysem%cSys AC%c%c",34,92,92,92,92,34);
    mkdir(tmp);

    Oui j'ai utilisé le code ASCII de \ et " , parce que les " sont utilisées pour les paramètres dans sprintf et quand j'entre
    sprintf(tmp,"c:\program files\System\Sys AC") en dur, çà merde... Il enleve les " et les \
    Bref, je pense que tmp est bien formatée puisque quand je fais

    printf("%s\n",tmp);

    la sortie est "c:\program files\System\Sys AC"

    mais avec le mkdir(tmp) il n'y a pas d'erreur mais pas de création de dossier

    2.2) j'ai alors essayé avec

    system("c:");
    system("cd program files"); <-- déjà là c'est sur, erreur a cause de l'espace il faudrait mettre des " mais comment faire
    system("cd system");
    system("mkdir Sys AC"); <-- là aussi erreur a cause de l'espace...


    3)créer un dossier en langage C est-ce possible ?
    aucune idée ! j'ai bien trouvé opendir( char* flux, mode); pour les ouvrir mais apres....


    4) et pour copier un dossier en langage C ? alors là, encore moi




    donc toujours bloqué....




    Aidez moi SVP, je ne sais plus quoi faire...

  2. #2
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Salux

    sprintf(tmp,"%cc:%cprogram files%cSysem%cSys AC%c%c",34,92,92,92,92,34);
    Oh my gaude!
    C'est vraiment un truc de base : pour ecrire un antislash dans une chaine litterale il suffit de mettre un antislash devant
    "c:\\dossier\\sous-dossier"
    Pareil pour la constante caractere
    printf ("%c", '\\');

    Je vous conseillerai de faire un script (vbscript, python, perl, php, ...) pour tout ce qui est tache d'aministration. Si votre programme ne consiste qu'en la création de dossiers, faut vraiment etre masoschiste pour l'ecrire en C. La preuve, vous n'arretez pas de faire des system()...

  3. #3
    Membre émérite Avatar de mchk0123
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    816
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 816
    Par défaut
    Si vraiment tu as la motivation pour continuer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    mkdir("c:\\program files\\System\\Sys AC");
    OU
    system("mkdir \"c:\\program\ files\\System\\Sys\ AC\"");
    Gruik, pour le côté ! sous Windows comme la gestion du shell est vraiment limitée ça peut avoir un sens.

  4. #4
    Candidat au Club
    Profil pro
    Lycéen
    Inscrit en
    Septembre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5
    Par défaut re
    sous Windows comme la gestion du shell est vraiment limitée ça peut avoir un sens.
    heu... la gestion du shell est peut être limitée sous windows, mais pas au point de créer un programme entier pour copier et créer des dossiers quand même ?

    Il faut que je gère des fichiers a la maniere d'un .BAT avec les commandes CD MOVE MKDIR COPY etc.
    Dans ce cas, pourquoi ne pas faire directement un fichier batch .bat ? Quitte à l'appeler après dans le programme C après.

  5. #5
    Membre émérite Avatar de mchk0123
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    816
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 816
    Par défaut
    Bah c'est sur que si c'est pour juste copier un dossier dans un autre ... inutile de passer par le C.

    Maintenant peut-être que Jean Jean veut aller plus loin ? Je me trompe ?

Discussions similaires

  1. Gestion de fichier / dossier erreur de reconnaissance
    Par jeanjean6 dans le forum Langage
    Réponses: 2
    Dernier message: 24/01/2011, 21h07
  2. gestion des fichiers et dossiers avec FTP
    Par ahmeds dans le forum Réseau/Web
    Réponses: 3
    Dernier message: 12/10/2006, 13h09
  3. [Concept] BD ou Gestion par fichier. Intérêt de la BD ?
    Par Cian dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 28/11/2002, 12h16

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