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 :

création d'un dossier


Sujet :

C

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 298
    Points : 886
    Points
    886
    Par défaut création d'un dossier
    Bonjour, je cherche une fonction que me crée un dossier s'il n'existe pas. Je dois faire une étude paramétrique et donc je vais lancer bcp de fois mon prgm. Ce que je voudrais c'est que si le répertoire "Outputs" n'existe pas, alros je veux que mon prgm le crée. Ensuite, si le réperoitre "Outputs/Output1" n'existe pas, alors je veux que ce dossier soit créer et ensuite je voudrais copier toutes mes sorties dans ce dossier. Si ce dossier existe alors je répète la procédure pour "Outputs/Output2" et ainsi de suite.
    J'ai bien vu dans la FAQ la fonction opendir mais existe-t-il une fonction "CreateDir" ?
    Merci.

  2. #2
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut Re: création d'un dossier
    Citation Envoyé par salseropom
    J'ai bien vu dans la FAQ la fonction opendir mais existe-t-il une fonction "CreateDir" ?
    POSIX.1 :

    mkdir()
    chdir()

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 298
    Points : 886
    Points
    886
    Par défaut
    Salut, merci des ces infos. Je sais maintenant comment créer mes dossiers. Mais j'ai du mal à utiliser la fonction chdir.
    J'ai essayé le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    DIR * dir=opendir("Outputs");
      if (dir==NULL)
        mkdir("Outputs");
      else
     chdir("..");
    le mkdir marche bien mais je voudrais utiliser la fonction chdir pour copier mes fichiers dans le répertoire que je veux. En gros je pensais faire un chdir et me mettre dans le bon répertoire, puis faire mon fprintf puis refaire un chdir pour revenir à la suite de mon calcul.

    Mais j'ai aussi un autre pb : quand je fais

    puis dans mon shell je fais cd Outputs, j'obtiens l'erreur suivante :
    bash: cd: Outputs/: Permission non accordée
    donc comment faire l'équivalent d'un chmod en C ?

    Merci.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2004
    Messages : 27
    Points : 20
    Points
    20
    Par défaut
    Je relance le debat car je suis dans exactement la meme situation que toi!!! Donc est-ce que quelqu'un pourrait nous filer un coup de main pour pouvoir creer un dossier en C et avoir les droits sur ce dossier??

    Pour info, je travail sur linux...

  5. #5
    Membre éprouvé Avatar de gnto
    Homme Profil pro
    Ingénieur système logiciel
    Inscrit en
    Janvier 2006
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur système logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2006
    Messages : 923
    Points : 1 210
    Points
    1 210
    Par défaut
    chmod en C

    man 2 chmod norme SVID, POSIX, X/OPEN, 4.4BSD

    man 2 mkdir norme POSIX, BSD, SYSV, X/OPEN
    man 2 chdir norme POSIX, BSD, SYSV, X/OPEN

    A croire que chmod est apparu sur BSD4.4

  6. #6
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    le mkdir marche bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    DIR * dir=opendir("Outputs");
      if (dir==NULL)
        mkdir("Outputs");
      else
     chdir("..");
    Ce code m'étonne puisque le prototype de mkdir est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
           int mkdir(const char *pathname, mode_t mode);
    Donc le 2ème argument est manquant... Il sert à donner les droits sur le répertoire...

    Jc

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/04/2007, 17h45
  2. Pb au niveau de création d'un dossier.
    Par insane_80 dans le forum ASP
    Réponses: 2
    Dernier message: 03/04/2007, 16h44
  3. Réponses: 3
    Dernier message: 30/05/2006, 12h07
  4. Réponses: 21
    Dernier message: 09/04/2006, 23h13
  5. Récuperez la date de création d'un dossier
    Par @dinsx dans le forum C++Builder
    Réponses: 4
    Dernier message: 19/07/2005, 09h42

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