Como posso calcular estatísticas (espaço sendo usado/disponível) para um diretório?
Pessoal,
Preciso pegar quanto de espaço em disco está disponivel para um determinado diretório e o que está sendo utilizando, para apresentar na tela de um admin.
Se alguem puder me ajudar.
Obrigado.
Preciso pegar quanto de espaço em disco está disponivel para um determinado diretório e o que está sendo utilizando, para apresentar na tela de um admin.
Se alguem puder me ajudar.
Obrigado.
comentários (0)
suspender
Lista de Respostas:
02/06/2009 1:02am
(~15 anos atrás)
(~15 anos atrás)
Caso não tenha conhecimento da SPL fica complicado explicar mas enfim:
Para converter para um número legível algúem publicou uma função legal na documentação:
Já para pegar quanto espaço de disco está livre é mais fácil:
E já que estamos falando disto... para saber o espaço total no disco:
Espero que era isto que vc queria!
Abs,
Alex
$iterador = new RecursiveDirectoryIterator($pathName); $iteradorRecursivo = new RecursiveIteratorIterator($iterador); $tamanho = 0; foreach ( $iteradorRecursivo as $arquivo ) { $tamanho += $arquivo->getSize(); } echo 'tamanho = ' . $tamanho . ' bytes'; // SplFileinfo::getSize() retorna o número de bytes
Para converter para um número legível algúem publicou uma função legal na documentação:
function decodeSize( $bytes ) { $types = array( 'B', 'KB', 'MB', 'GB', 'TB' ); for( $i = 0; $bytes >= 1024 && $i < ( count( $types ) -1 ); $bytes /= 1024, $i++ ); return( round( $bytes, 2 ) . " " . $types[$i] ); } // ou seja, echo 'tamanho é ' . decodeSize($tamanho);
Já para pegar quanto espaço de disco está livre é mais fácil:
echo 'espaco livre = ' . decodeSize(disk_free_space($disco)); // OBS: $disco: no windows vc colocaria 'C:', etc dependendo da particao que queira verificar, no linux '/' ou o caminho desejado // OBS2: olha a funcao decodeSize() denovo!
E já que estamos falando disto... para saber o espaço total no disco:
echo 'espaco total = ' . decodeSize(disk_total_space($disco));
Espero que era isto que vc queria!
Abs,
Alex