Uma das features mais legais do PHP 5 são os chamados Iterators, tem pra tudo, array, diretórios, XM … dando uma olhada na página do manual, você pode ter uma listagem completa, inclusive com exemplos de uso. Futuramente, pretendo falar sobre todos, mas a bola da vez é o DirectoryInterator.
O DirectoryIterator, é obviamente, para trabalhar com diretórios e arquivos. Com ele, você pode facilmente - e obviamente, orientado a objetos - trabalhar com o conteúdo de um diretório.
Um exemplo de uso:
<?php
// diretório atual do script
$strDiretorio = __DIR__;
// instancio a classe informando o diretório
$objDiretorio = new DirectoryIterator($strDiretorio);
// percorro o conteúdo do diretório
foreach($objDiretorio as $objDiretorioConteudo) {
echo $objDiretorioConteudo->getPathname() . PHP_EOL;
}
Abaixo, listo alguns métodos que você pode usar no $objDiretorioConteudo do exemplo acima:
Pegar a data de modificação: getMTime() Pegar a data de criação: getCTime() Verficiar se é um diretório: isDir() Verificar se é um arquivo: isFile() Verificar se é um arquivo oculto (começa com ponto, no Linux): isDot() Verificar se é um link: isLink() Verificar as permissões: getPerms() Recuperar o tamanho do arquivo: getSize() Verificar se é um executável: isExecutable() Verificar se existe a permissão de leitura: isReadable() Verificar se existe a permissão de gravação: isWritable()
Na página do manual, você pode obter uma listagem completa dos métodos, dá uma passada lá.