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

Langage Perl Discussion :

[langage] creation d'arborescence en perl


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    532
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 532
    Par défaut [langage] creation d'arborescence en perl
    salut,

    J'aurai aimé savoir si il etait possible de creer des arborescence de fichier en perl ?


    Merci

  2. #2
    Membre expérimenté Avatar de rcageot
    Profil pro
    rien
    Inscrit en
    Septembre 2006
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : rien

    Informations forums :
    Inscription : Septembre 2006
    Messages : 128
    Par défaut
    c'est à dire ?
    qu'entends-tu par arborescence de fichier ?

  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    532
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 532
    Par défaut
    une chose dans ce genre

    A
    --B
    --C
    ----D
    ----E
    F
    G
    --H

  4. #4
    Membre expérimenté Avatar de rcageot
    Profil pro
    rien
    Inscrit en
    Septembre 2006
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : rien

    Informations forums :
    Inscription : Septembre 2006
    Messages : 128
    Par défaut
    je suis sur qu'il doit y avoir des modules qui font ça mais sinon tu peux t'inspirer d'un truc comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    sub list_dir {
       local ($path_from) = @_;
       $path_from =~ s$//$/$g;
       local (*DIR);
       opendir( DIR, "$path_from" ) || die "Impossible d'ouvrir le répertoire $path_from\nErreur: $!";
     
       while ( $entry = readdir( DIR ) ) {
          $type = ( -d "$path_from/$entry" ) ? "dir" : "file"; 
          if ( ($type eq "dir") && ($entry ne "..") && ($entry ne ".") ) {
             print "- Dossier : $entry\n";
             &list_dir("$path_from/$entry");
          }
          if ( ( $type eq "file" ) && ($entry ne "..") ) {
             print "- Fichier : $entry\n";
          }
       }
       closedir( DIR );
       return;
    }

  5. #5
    Membre Expert
    Avatar de Woufeil
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 1 076
    Par défaut
    Bonjour,

    Il y a aussi la fonction mkdir qui peut te servir pour créer des répertoires

  6. #6
    Membre Expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Par défaut
    Bonjour,

    Citation Envoyé par donny
    J'aurai aimé savoir si il etait possible de creer des arborescence de fichier en perl ?


    J'ai deux façons de comprendre ta question ...

    Veux-tu créer une arborescence (affichage) des fichiers (déjà existants), ou bien veux-tu créer les fichiers d'une liste de données représentant l'arborescence à créer ?

    Dans le premier cas, une fonction d'affichage, récursive, avec des opendir/readdir/closedir et une précision du niveau de profondeur atteint est très facile à mettre en place.

    Dans le second cas, il est important de choisir une bonne structure de données pour stocker la liste de fichier/répertoires à créer, et ensuite, c'est très facile à coup de mkdir.

    Bon courage.

  7. #7
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    532
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 532
    Par défaut
    en faite pour creer une arborescence il existe ce module :je l'ai utiliser et j'ai fait cela


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #!/usr/bin/perl
     
    use File::Path;
     
    mkpath(['/D/d1/d2', 'C/c1/c2'], 1);
    le probleme est qu'il me creer 'C/c1/c2' dans le repertoire à partir duquel j'appel mon script mais il creer cela '/D/d1/d2' à la racine dans mon C:
    ???

    je en comprend pas

  8. #8
    Membre expérimenté Avatar de rcageot
    Profil pro
    rien
    Inscrit en
    Septembre 2006
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : rien

    Informations forums :
    Inscription : Septembre 2006
    Messages : 128
    Par défaut
    c'est normal c'est ce que tu lui demandes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mkpath(['/D/d1/d2', 'C/c1/c2'], 1);
    /D/d1/d2 est un chemin absolu partant de la racinne du disque (avec le /en premier)
    C/c1/c2 est un chmein relatif donc partant de ton répertoire de travail (sans / au début)

  9. #9
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    532
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 532
    Par défaut
    arffffffffff
    j'avais pas vu
    merci
    et si je souhaite creer cettre arborescence
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
     
    home
        dev1 test
        dev2 file1
               file2
    en faite cela
    mkdir home
    mkdir home/dev1
    mkdir home/dev1/test
    mkdir home/dev2
    mkdir home/dev2/file1
    mkdir home/dev2/file2
    je suis obliger d'indiquer le chemin complet à chaque fois et donc faire des repetitions ??
    comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #!/usr/bin/perl
     
    use File::Path;
     
    mkpath(['home/dev1/test', 'home/dev2/file1','home/dev2/file2'], 1);
    merci

  10. #10
    Membre Expert Avatar de MarneusCalgarXP
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    911
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 911
    Par défaut
    rien ne t'empêche de te construire une méthode qui définit un chemin de base et des chemins relatifs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    #!/usr/bin/perl
     
    use File::Path;
     
    sub mymkpath
    {
        my ($rootdir, $subdirs) = @_;
        my @absolutedirs = map { $rootdir . '/' . $_ } @$subdirs;
        mkpath(\@absolutedirs , 1);
    }
     
    mymkpath('/home', ['dev1/test', 'dev2/file1', 'dev2/file2']);
    # ou alors
    mymkpath('/home', ['dev1/test']);
    mymkpath('/home/dev2', [ 'file1', 'file2']);

Discussions similaires

  1. [langage] Renseignement pour débuter sur perl
    Par freeshman dans le forum Langage
    Réponses: 2
    Dernier message: 29/04/2004, 23h47
  2. [langage] Création de variable d'environnements
    Par Smaugg dans le forum Langage
    Réponses: 20
    Dernier message: 26/04/2004, 09h32
  3. [langage] Recherche d'un editeur Perl (freeware)
    Par marouanitos dans le forum Langage
    Réponses: 2
    Dernier message: 07/10/2003, 08h17
  4. Réponses: 3
    Dernier message: 28/07/2003, 22h01
  5. [langage] Création de dossier en chemin absolu
    Par Jibees dans le forum Langage
    Réponses: 4
    Dernier message: 25/04/2003, 10h57

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