Работа с файлами

Обсуждение серверного программирования.

Модераторы: Duncon, Yurich

Ответить
Gen_r_questions
Сообщения: 14
Зарегистрирован: 13 фев 2011, 12:35

Есть такая структура папок и файлов
папка 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); 
Почему код перебрасывается на строку chdir($dir), после выхода из цикла ?
Ответить