Ir para conteúdo

Arquivado

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

André Maretti

FTP - Tamanho total da pasta

Recommended Posts

Ae galera... beleza...Estou fazendo um sistema de FTP....Tenho que verificar se o usuário tem cota para usar na pasta dele... essa cota é de 5MB para cada usuário...Consegui verificar quanto ele já utilizou... somando os pesos de cada um dos arquivos da pasta.O problema são as sub-pastas.... Por exemplo, o usuário tem acesso a pasta Andre, mas dentro desta pasta tem mais tres pastas... Andre/Imagens, Andre/jogos e Andre/musicas.Preciso de um comando ou função que me retorne o tamanho total da pasta Andre... com todas as suas sub-pastas...Com esse comando: ftp_size($con, $nome_arquivo)... eu consigo saber o tamanho de um arquivo... mas não funciona pra uma pasta e suas sub-pastas.Alguém sabe de algo que pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

você terá que fazer um loop recursivo que captura o peso dos arquivosdependendo da quantidade de arquivos e subpastas, se for muito extenso poderá ter problemas com performance.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ae galera....

 

Até arrepiei quando me disseram q o unico jeito era fazer um função recursiva.... nunca consegui fazer uma função dessas na faculdade.... http://forum.imasters.com.br/public/style_emoticons/default/ermm.gif

 

Mas depois de muito quebrar a cabeça ai está:

 

Pra quem quiser aproveitar o exemplo:

<?function tam($path) {   global $tamanho_pasta;   echo("Entrou na função <BR>");   //DADOS PARA CONEXÃO	     $server  = "www.xxx.com.br";      $usuario = "zzz";	      $senha   = "yyy";    //CONECTA AO FTP   $con = ftp_connect($server) 		  or die ("ERRO AO CONECTAR AO SERVIDOR DE FTP ".$server);    //TENTA EFETUAR O LOGIN COM USUÁRIO E SENHA DE ACESSO   if(@!ftp_login ($con, $usuario, $senha) ) {		 echo "Não foi possível efetuar a conexão. Verifique o usuário e a senha de acesso.";   }   $troca_dir = ftp_chdir($con, $path);   //EXIBE OS ARQUIVOS DA RAIZ USANDO A FUNÇÃO FTP_NLIST()    $arr_arq = ftp_nlist($con, "");    for($i=0; $i<sizeof($arr_arq); $i++) { 	   if (ftp_size($con, $arr_arq[$i]) == -1) {		  echo("Entando na pasta " . $path . "/" . $arr_arq[$i] . "<BR>");		  tam($path . "/" . $arr_arq[$i]);	   } else {			 $tamanho_pasta = $tamanho_pasta + ftp_size($con, $arr_arq[$i]);	  	 	   echo("Arquivo " . $arr_arq[$i] . ", Tamanho = " . number_format(ftp_size($con, $arr_arq[$i]), 2,',','.') . "<BR>");	   }   }//FECHA FOR   $porc_utilizada = number_format (($tamanho_pasta*100/5242880), 2,',','.');}echo("Chamando a Função<BR>");tam("www/user_andre");echo("Tamanho Total = " . number_format ($tamanho_pasta, 2,',','.'));?>

http://forum.imasters.com.br/public/style_emoticons/default/clap.gif Palmas pra mim q consegui fazer uma FUNÇÃO RECURSIVA.... hehehehe

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.