Trabalhando com diretórios de forma simples

24 de Maio de 2010 às 21:07 Edgar Serra PHP Sem comentários

A alguns anos trabalhar com diretórios era uma complicação. Para listar os arquivos eram necessárias técnicas de ninja, utilizando opendir e readdir.

Se quizesse abrir os diretórios dentro do diretório informado no opendir então, nossa, era necessária aquela mão de obra, sem falar no processamento. Mas isso era muito antigamente.

Hoje em dia (na verdade faz um tempinho, mas a muita gente ainda não sabe), dá pra fazer isso tudo de forma bem simples com os Iterators . No nosso caso específico a gente trabalhará com o DirectoryIterator e o RecursiveDirectoryIterator , que são os utilizados para diretórios.

O DirectoryIterator permite que se liste todos os arquivos/pastas de um diretório, por exemplo:

<?php
$diretorio = new DirectoryIterator('/www');
 
foreach($diretorio as $entrada){
    echo $entrada->getFilename().'
'; } ?>

Caso seja necessário listar os arquivos do diretório informado e dos diretórios dentro dele, ou seja, fazer uma listagem recursiva, não tem problema, usaremos, nesse caso o RecursiveDirectoryIterator :
<?php
$diretorio = new RecursiveDirectoryIterator('/www/celular');
$diretorio_recursivo = new RecursiveIteratorIterator($diretorio);
 
foreach($diretorio_recursivo as $entrada){
    echo $entrada->getFilename().'
'; } ?>

Baseado nesses recursos basta utilizar a imaginação (e o conhecimento, é claro), para se manipular diretórios de qualquer maneira.

Comentar:

Atenção: Todos os comentários são moderados, por isto não perca seu tempo postando bobagens ou spam.