Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

joaofla123

Como listar arquivos de pasta e de subpasta de uma pasta?

Recommended Posts

Antes de tentar criar um código gostaria de saber se alguém possui um pronto. Ou se não tiver, idéias de como fazer.

 

Eu gostaria de listar os arquivos das pastas e subpastas da pasta fotosProgramas nesse formato:

 

echo $pasta.'/'.$subpasta.'/'.$arquivo;

 

fotosProgramas/Pasta1/Arquivo1.jpg

fotosProgramas/Pasta1/Arquivo2.jpg

fotosProgramas/Pasta1/Arquivo3.jpg

fotosProgramas/Pasta2/Arquivo1.jpg

fotosProgramas/Pasta4/Arquivo1.jpg

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá joaofla123,

 

Não sei se vai te ajudar, mas eu fiz uma funçãozinha simples, mas funciona...
Ela pega todas as pastas, subpastas, sub-subpastas e etc... E retorna juntos seus arquivos...

 

Espero que ajude,

 

function retornaDiretorio(){
			$minBlackList 		   = array(".","..","...");
			$extBlackList 		   = array("/.php/","/.html/","/.PHP/","/.HTML/");
			$local        		   = "application/controllers/";

			$opcoes['controllers'] = array();

			$i 	  	      	  	   = 0;
			$b            	 	   = 1;
			$t			  	  	   = -1;
			$addBlackList 	  	   = array();
			$addBlackListFile 	   = array();
			$valor        	 	   = NULL;
			
			do{
				if(is_file($local.$valor[$i]) && !preg_match('/html/',$valor[$i]) && !in_array($valor[$i],$minBlackList) && !in_array($valor[$i],$addBlackListFile)){

					$folderName  = explode("/",$local);
					$folderPasta = $folderName[count($folderName) - 2];
					
					$opcoes[$folderPasta][$valor[$i]] = ucfirst(preg_replace($extBlackList,"",$valor[$i]));
					array_push($addBlackListFile,$valor[$i]);
					
				}
				if(is_dir($local.$valor[$i]) && !empty($valor) && !in_array($valor[$i],$minBlackList) && !in_array($valor[$i],$addBlackList)){
					$pasta = $valor[$i];
					$t++;
				}
				if(isset($pasta) && is_dir($local.$pasta) && $b == count(scandir($local)) && !in_array($pasta,$addBlackList) && !in_array($pasta,$minBlackList)){
					
					array_push($addBlackList,$pasta);
					
					$pastas[] = $pasta;
					$local    = "application/controllers/".implode("/",$pastas)."/";;
					
					$i 		  = 0;
					$b 		  = 1;
				}
				
				if($b == count(scandir($local))){
					$pastas = null;
					$pasta  = null;
					$local  = "application/controllers/";
				}
				$b++;
				$i++;
			}while($i < count($valor = scandir($local)));

			return $opcoes;

}

 

 

A não esquecendo é só na variável local, tu coloca qual a pasta que tu quer ler, abraço :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sabe como eu transformo essa função em string??

 

não estou conseguindo com implode(',',$opcoes);

 

' fotosProgramas/Pasta1/Arquivo1.jpg ',

' fotosProgramas/Pasta1/Arquivo2.jpg ',

' fotosProgramas/Pasta1/Arquivo3.jpg ',

' fotosProgramas/Pasta2/Arquivo1.jpg ',

' fotosProgramas/Pasta4/Arquivo1.jpg ',

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.