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 PHP Discussion :

tester si un répertoire est vide


Sujet :

Langage PHP

  1. #1
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 369
    Points : 5 734
    Points
    5 734
    Billets dans le blog
    1
    Par défaut tester si un répertoire est vide
    Bonsoir,

    j'ai récupéré un script qui est censé tester si un répertoire est vide ; le problème, c'est que même s'il n'est pas vide, il me dit quand même qu'il est vide. Je ne sais pas le corriger, mais j'ai quand même remarqué une bizarrerie . Le voici :
    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
    function is_empty_folder($folder){ 
       if(is_dir($folder) ){ 
           $handle = opendir($folder); 
           while( (gettype( $name = readdir($handle)) != "boolean")){ 
                   $name_array[] = $name; 
           } 
           foreach($name_array as $temp) 
               $folder_content .= $temp; 
     
          if($folder_content == "...") 
               return true; 
           else 
               return false; 
     
           closedir($handle); 
       } 
       else 
           return true; // Le répertoire n'existe pas 
    }
    et je trouve bizarre cette chose-là : (crochets vides) (sinon, je viens de comprendre le test
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      if($folder_content == "...")
    : si le répertoire est vide mais existe, il ne contient que . et ..)
    Peut-on me dire ce qui ne va pas dans ce script ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  2. #2
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 369
    Points : 5 734
    Points
    5 734
    Billets dans le blog
    1
    Par défaut
    Je viens de penser que je passe à la fonction un chemin relatif :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $rep="../accueil2/".$selected_rep;
    Est-ce que cela pourrait venir de ça ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Tu sais que lorsque nous faisons sous "dos" un dir, chaque répertoire commence par "." puis ".."
    donc il suffit de tester
    1) si le répertoire existe
    2) si on trouve "." et ".."
    3) si on ne trouve rien d'autre

    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
     
    <?PHP
    $OK=99;
    $dir = "Monrep/";
    if (is_dir($dir)) 
    {
     if ($Pointeur = opendir($dir)) 
      {
       while (($file = readdir($Pointeur)) !== false) 
          {
           if ($file!="." && $file!=".." ) $OK=0;
           if ($file=="." || $file==".." ) $OK=1;
           }
       closedir($Pointeur);
      }
    }
    if( $OK==99) echo ("Le répertoire n'existe pas");
    if( $OK==1) echo ("Le répertoire existe et est vide");
    if( $OK==0) echo ("Le répertoire n'est pas vide");
    ?>

  4. #4
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 369
    Points : 5 734
    Points
    5 734
    Billets dans le blog
    1
    Par défaut
    Merci ; ça n'a pas marché du premier coup, mais maintenant, c'est OK.
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

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

Discussions similaires

  1. tester si un répertoire est vide
    Par guefrachi dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 15/01/2018, 19h13
  2. [Batch] comment tester qu'un répertoire est vide ?
    Par JiCeBe dans le forum Scripts/Batch
    Réponses: 6
    Dernier message: 18/08/2009, 23h08
  3. [C#] Tester si un répertoire est vide
    Par Johann7751 dans le forum C#
    Réponses: 10
    Dernier message: 03/07/2009, 14h42
  4. Tester si une table est vide
    Par rsc dans le forum SQL
    Réponses: 2
    Dernier message: 01/07/2004, 16h25
  5. [JDBC]tester si une table est vide
    Par zozolh2 dans le forum JDBC
    Réponses: 5
    Dernier message: 28/05/2004, 09h17

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