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 :

readdir() conscidère mes répertoires comme des fichiers


Sujet :

Langage Perl

  1. #1
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 219
    Points : 66
    Points
    66
    Par défaut readdir() conscidère mes répertoires comme des fichiers
    Bonjour, je suis sur le développement d'un webftp en perl (débutant). Le problème est que je me sers de la fonction readdir() qui conscidère mes répertoires comme des fichiers. Voici l'xtrait concerné:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    opendir(DIR,$home.$category);
    		my @liste=readdir(DIR);
    		foreach $folder(@liste)
    		{
    			if(-d $folder && $folder ne "." && $folder ne "..")
    			{
    				print "$folder<br />";
    			}
    		}
    Il se trouve que sans la condition "-d $folder" mes répertoires sont bien visibles. Comment faire?

  2. #2
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Je ne comprend pas ton problème... Il est normal que readdir() renvoie tout le contenu du répertoire passé en argument, et il suffit de filtrer avec -d pour ne récupérer que les répertoires alors où est la question ?

    --
    Jedaï

  3. #3
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 219
    Points : 66
    Points
    66
    Par défaut
    Mon problème est bien là! Les répertoires autres que "." & ".." sont filtrés par "-d" et ne sont pas affichés.

  4. #4
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Ok.. Si tu m'avais demandé "comment n'afficher que mes répertoires ?" j'aurais certainement compris plus vite, c'est une erreur classique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    opendir(DIR,$home.$category);
     
    my @files = readdir(DIR);
    foreach my $folder( @files ) {
      next if -d "$home$category/$folder" or $folder eq '.' or $folder eq '..';
      print "$folder<br />";
    }
    Le problème est que -d "chemin" teste le fichier dont tu lui donnes le chemin, il faut donc lui donner le chemin complet du fichier, pas seulement son nom (sauf lorsque le fichier est dans le répertoire courant).

    --
    Jedaï

  5. #5
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 219
    Points : 66
    Points
    66
    Par défaut
    Ok, merci et désolé pour la confusion

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Suppression d'un répertoire contenant des fichiers
    Par gotcha5832 dans le forum Langage
    Réponses: 1
    Dernier message: 20/10/2009, 11h58
  2. Réponses: 1
    Dernier message: 10/11/2008, 16h38
  3. Cacher des répertoires ou des fichiers (FTP)
    Par Akim13 dans le forum Serveurs (Apache, IIS,...)
    Réponses: 2
    Dernier message: 30/09/2008, 19h12
  4. Comment supprimer un répertoire ayant des fichiers
    Par pinson dans le forum Delphi
    Réponses: 2
    Dernier message: 02/11/2006, 09h52
  5. Réponses: 2
    Dernier message: 10/10/2006, 19h42

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