il tuo è un controsenso... cosa te ne fai del solo nome del file o directory in un processo ricorsivo? se hai 2 file chiamati pippo.txt in cartelle diverse, dopo non sei piu in grado di riconoscerli....
cmq eccoti una funzione che utilizzo io
Codice PHP:
<?php
function list_elements($dir,$out)
{
$file_list = '';
$stack[] = $dir;
while ($stack)
{
$current_dir = array_pop($stack);
if ($dh = opendir($current_dir))
{
while (($file = readdir($dh)) !== false)
{
if ($file !== '.' AND $file !== '..')
{
$current_file = "{$current_dir}/{$file}";
if (is_file($current_file))
{
$file_list[] = "{$current_dir}/{$file}";
}
elseif (is_dir($current_file))
{
$stack[] = $current_file;
$dirs[]=$current_file; //l' array delle directory
//echo $current_file." corrisponde ad una directory
"; // questa
}
}
}
}
}
if ($out=='file')
return $file_list;
if ($out=='dir')
{
//$dirs=array_reverse($dirs);
return $dirs;
}
}
$dirs=list_elements("cartella",'dir'); // raccoglie tutte le dir
$files=list_elements("cartella",'file'); // raccoglie tutti i files
echo "<pre>";
print_r($dirs);
print_r($files);
?>