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] Création de dossier en chemin absolu


Sujet :

Langage Perl

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    290
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 290
    Points : 137
    Points
    137
    Par défaut [langage] Création de dossier en chemin absolu
    Je voulais savoir si il était possible de créer des dossier de facon automatique. Je m'explique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    my $chemin = '/home/user_x';
     
    foreach my $index (@liste)
    {
                  my $file = "$chemin/$index/monfic.fic';
                  open (FILE,$file) or die "Erreur ouverture fichier\n";
    }
    Je vois pas pourquoi ce genre de truc ne marcherait pas ; et pourtant il ne veut pas ouvrir les fichiers, ni même créer les dossiers : j'ai pourtant bien les droits necessaires.
    Merci !!!

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    290
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 290
    Points : 137
    Points
    137
    Par défaut
    En fait ma question est : pourquoie ne peut-on pas créer un fichier en spécifiant son chemin (au moins à deux niveaux). Par exmple je veux créer le fichier fic.fic dans le dossier $routeur dans le chemin $chemin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    my $chemin = '/home/user_x';
    my $routeur = 'routeur_a';
    my $file = ">>$chemin/$routeur/fic.fic";
    Et ca ca ne marche pas !!!
    Comment est ce que ca se fait ?

  3. #3
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 572
    Points : 2 014
    Points
    2 014
    Par défaut
    Je ne vois nulle part de mkdir ...

    Et sans faire de mkdir, tu ne peux pas accéder à un répertoire si tu ne l'as pas créé au préalable.

    Et même si tu penses qu'en "forçant" une ouverture dans /home/user/toto/mon_fic.txt, ben si le dossier /toto n'existe pas, la fonction open ne le fera pas pour toi



    open : ouvre un fichier existant ou n'existant pas, peu importe. Par contre, l'endroit où le fichier doit être ouvert doit obligatoirement exister.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    290
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 290
    Points : 137
    Points
    137
    Par défaut
    ok je viens de comprendre !
    Mais sous Win il est possible de créer un dossier de cette facon !!
    Alors moi je pensais que sous Unix c'etait pareil ...
    Merci en tout cas !
    Par contre peut-on spécifier la création d'un fichier depuis la racine ! JE veux dire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $file = "$chemin/$dossier/fic.fic";
    Tout en sachant que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    my $chemin = '/home/user_x';
    my $dossier = 'nouveau_dossier';
    et que tous les dossiers existent ?

  5. #5
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 572
    Points : 2 014
    Points
    2 014
    Par défaut
    alors pour répondre à ta question, OUI !

    je suis en plein dans ce genre de prog sous Linux, j'ai fait un prog qui crée toute une série de dossiers/sous-dossiers à partir de /home/user.

    dans l'un de ces dossiers, j'ai créé un fichier conf qui contient la liste de tous les répertoires créés, ce fichier se nomme (exemple) toto.conf, il est logé dans /home/user/Rep/conf et je l'ai créé sacom :

    open(CONF, ">/home/user/Rep/conf/toto.conf") or die();

    donc oui, tu peux indiquer un chemin à l'ouverture de ton fichier. Tout ce qu'il faut, c'est que les répertoires indiqués dans ton chemin existent tous.

    PS : j'ignorais qu'on pouvait créer un dossier sous windows via open

Discussions similaires

  1. Ouvrir Dossier Explorer, chemin avec virgule
    Par Crickett84 dans le forum VBA Access
    Réponses: 4
    Dernier message: 08/06/2021, 10h46
  2. Quel langage pour tester des fichiers/dossiers
    Par Freud44 dans le forum Langages de programmation
    Réponses: 8
    Dernier message: 08/08/2008, 08h50
  3. [DOS] récupérer le chemin absolu du dossier courant
    Par seiryujay dans le forum Windows
    Réponses: 1
    Dernier message: 14/06/2006, 14h58
  4. [langage] chemin absolu d un fichier
    Par nono1782 dans le forum Langage
    Réponses: 4
    Dernier message: 20/07/2004, 14h02
  5. [langage] portabilité et seperateur de dossier
    Par matN59 dans le forum Langage
    Réponses: 5
    Dernier message: 07/01/2004, 18h27

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