папка 1(1.txt, 2.txt, 3.txt,папка 2(папка 3(4.txt),папка 4(5.txt, 6.txt))
Такой код:
Код: Выделить всё
<?php
$default_dir = "C://папка 1";
function traverse_dir($dir) {
echo "Обход каталога $dir....
";
chdir($dir);
if(!($dp = opendir($dir))) die("Невозможно открыть каталог $dir.");
while($file = readdir($dp)) {
if(is_dir($file)) {
if($file != '.' && $file != '..') {
echo "/$file
";
traverse_dir("$dir/$file");
chdir($dir);
}
}
if (is_file($file))
echo "$file
";
}
closedir($dp);
}
traverse_dir($default_dir);
?>
Работает так:
Заходит в папка 1, потом выводит 1.txt, 2.txt, 3.txt и папка 2
Потом заходит в папка 2, выводит папка 3, заходит в папка 3, выводит 4.txt
Дальше код выходит из цикла, дескриптор был 3, стал 2 и код переходит на строку
Код: Выделить всё
traverse_dir("$dir/$file");
chdir($dir);