is_dir() dans un sous dossier toujours faux

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : is_dir() dans un sous dossier toujours faux

par guilt92 » 06 mai 2008, 14:37

Effectivement c'est mieux !! :)

Ok donc il fallait préciser le chemin "complet"...

Merci beaucoup.

par steph29 » 06 mai 2008, 14:26

la c'est mieux, j'avais oublie pour le is_dir ;)
function list_dir($name) {  
  if ($dir = opendir($name)) {  
    while(false !== ($file = readdir($dir))) {  
    echo $name.'/'.$file."<br>\n";  
		if(is_dir($name.'/'.$file) && !in_array($file, array(".",".."))) {  
			list_dir($name.'/'.$file);  
		}

    }  
    closedir($dir);  
  }  
}

par guilt92 » 06 mai 2008, 14:12

Meme comportement en C:\.... : il s'arrete au sous dossier :(

par steph29 » 06 mai 2008, 14:01

oui en http://... c'est logique ;)

essaie en chemin absolu: /var/www/... ou c:/wamp/www/... en fonction de ton systeme ;)

par guilt92 » 06 mai 2008, 12:56

J'ai placé le fichier ou je fais les test au même endroit que les premiers répertoires donc je lance un list_dir("."); (donc relatif)

j'ai essayé de faire list_dir("http://localhost/projet/dossier_racine") mais ca marche pas, il n'arrive pas à faire l'opendir mais c'est peut etre logique...

par steph29 » 06 mai 2008, 12:47

logiquement ca doit passe ton $dir n'est pas une variable globale... donc pas d'ecrasement.

$name est en chemin absolu ou relatif?

par guilt92 » 06 mai 2008, 12:40

J'avais malheureusement essayé, mais cela ne change rien...
Y-a-t il un problème connu lors de l'ouverture de deux opendir en simultané ?

par steph29 » 06 mai 2008, 12:35

et un
 list_dir($name.'/'.$file); 
?

is_dir() dans un sous dossier toujours faux

par guilt92 » 06 mai 2008, 11:07

Bonjour,

J'essaye de créer ou d'utiliser de l'existant pour parcourir l'ensemble des fichiers d'un répertoire, mais malheureusement cela ne fonctionne pas.
Ce que je ne comprends pas c'est que la fonction is_dir() marche au niveau de la racine, mais si dans ma boucle je fais un nouvel open_dir() d'un sous dossier alors dans ce sous dossier is_dir() me renvoi "faux" tout le temps.

Exemple (nom du dossier et résultat du is_dir):

. : true
.. : true
folder1 : true
subfolder1 : false
subfolder2 : false

J'ai pourtant tout essayé et j'ai donc voulu passer par un script "déjà fait", n'y arrivant pas moi même, et j'ai le même problème.

La fonction que j'ai trouvée sur le net :
function list_dir($name) { 
  if ($dir = opendir($name)) { 
    while(false !== ($file = readdir($dir))) { 
      echo "$file<br>\n"; 
      if(is_dir($file) && !in_array($file, array(".",".."))) { 
        list_dir($file); 
      } 
    } 
    closedir($dir); 
  } 
} 
ne dépasse pas la profondeur de 1 dossier (pas + que mes tentatives...)

Merci d'avance.