Ir para o conteúdo

Tutorial: Rastrear Pastas

Este breve tutorial explica como rastrear pastas de forma recursiva, lendo as pastas que estão dentro das pastas, e assim sucessivamente. Mostra também os ficheiros.

Breve explicação de Recursividade

A recursividade consistem numa função se chamar, dentro dela, a ela própria. Isto implica que uma função possa executar acções de forma cíclica, por exemplo, ou recursivas, como neste tutorial.

Exemplo de Funcionamento

As linhas pretas mostram o seguimento do programa.

Exemplo de Funcionamento

Código

<?php

//Esta variável define a pasta a "rastrear"
$path = "./";

//Chama a função para ler as pastas, pela primeira vez.
ler_conteudo($path, "");

//Função que lê o conteúdo das pastas.
//@param url - A pasta actual para ser rastreada
//@param espacos - Este parámetro serve para identificar o quão para dentro é mostrada a pasta/ficheiro.
function ler_conteudo($url, $espacos){

    //Lê os ficheiros e as pastas para um array.
    $files = scandir($url);

    //Percorre todos os índices do array
    foreach ($files as $index => $file){

        //Verifica se o índice actual do array é o zero ou o um.
        //Pois estes indicam apenas a pasta actual e a pasta superior.
        if ($index > 1){

            //Mostra a pasta com o número de espaços definidos, e o ficheiro.
            echo $espacos."- ".$file."<br />";

            //Verifica se o índice actual é uma pasta
            if (is_dir($url."/".$file."/")){

                //Se retornar verdadeiro, chama a própria função.
                //Lê a pasta actual e adiciona a pasta do array.
                //Adiciona aos espaços actuais mais três.
                ler_conteudo($url."/".$file, $espacos."&nbsp;&nbsp;&nbsp;");
            }
        }
    }

}
?>