Olá pessoal, tudo bem?!
Neste final de semana estive criando um pet project para praticar TDD, e foi direcionado a manipulação de diretórios.
E com isso resolvi criar este post para mostrar um recurso muito bom do PHP, sendo a classe nativa RecursiveDirectoryIterator, onde dispõem de um leque de ferramentas bacanas que podem facilitar sua vida.
Para realizarmos este post vamos criar um diretório ‘post_manipulando_diretorios_com_php’ e dentro dele vamos criar o arquivo index.php (onde iremos implementar nossos códigos) e mais 04 arquivos teste_01.txt, teste_02.txt, teste_03.txt e teste_04.txt. Após a criação da nossa estrutura básica vamos explorar o recurso.
Show me the code!!!
Para iniciar devemos instanciar nosso objeto.
|
|
Como vimos é necessário passar o path onde iremos manipular. E temos como retorno um objeto do tipo RecursiveDirectoryIterator.
Após instanciarmos nosso objeto, podemos percorrê-lo em um laço de repetição para termos acesso aos arquivos e diretórios.
|
|
Como retorno teremos:
|
|
Dentro do laço temos acesso a uma grande quantidade de métodos que podemos fazer uso para coletar diversas informações, vamos ver algumas dessas opções:
Get Base Name
|
|
Retorno
|
|
Com este recurso podemos obter o nome de todos os arquivos dentro do nosso diretório, podemos fazer isso em sub diretórios, para realizarmos acesso aos sub diretórios devemos realizar um laço recursivo 🙂
Get C Time
|
|
Retorno
|
|
Get File Name
|
|
Retorno
|
|
Get Group
|
|
Retorno
|
|
Temos uma lista bem extensa de funções que podemos utilizar para manipular diretórios e seus arquivos, podemos utilizar o getPat() onde irá retornar o caminho onde se encontra os arquivos, getPathname retornando o caminho completo contendo o nome do arquivo. Podemos verificar se é legível com isReadable() onde retorna true ou false e o método isWritable onde retorna se o arquivo é possível de ser gravado ou não.
Como vimos nos exemplos acima, as possibilidades são enormes e podemos manipular com facilidade diretórios e arquivos. Recomendo que acessem a documentação e analisem os outros recursos, que podem lhe poupar muitas linhas e horas de código quando o desafio é manipular diretórios e arquivos.
Podemos utilizar este recurso para criar arquivos do tipo zip por exemplo (no blog tenho um post que demonstra a criação de zip com PHP), ou qualquer outro formato, ficando restrito a nossa imaginação para implementar os recursos.
Espero que tenham gostado do post, curto porêm demonstra um recurso muito bacana que o PHP nos traz de forma nativa.
Até a próxima pessoal! 🙂