PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : diskUsage, Bytes in MB berechnen


erknissen
27.05.2009, 16:55:45
Hallo zusammen,

ich möchte den Speicherplatz eines Verzeichnisses berechnen. Dieses Script gibt mir eine Zahl in Byte aus.
Jetzt möchte ich aber den noch verbleibenden Speicherplatz in MB beechnen.
Beispiel: 100 MB - belegter Speicherlatz = eine Zahl in MB

Kann mir jemand helfen?

Anbei mein Script

<?PHP

function diskUsage( $dir ) {

if ( is_file ( $dir ) )
return filesize( $dir );

if( strlen( $dir ) - 1 != '\\' || strlen( $dir ) - 1 != '/' )
$dir .= '/';

$handle = @opendir( $dir );

if( !$handle )
return false;

while ( ( $file = readdir( $handle ) ) !== false ) {

if( $file != '.' && $file != '..' ) {

$use += diskUsage( $dir.$file );

}

}

closedir( $handle );

return $use;

}

echo 'Speicherbelegung: ' . diskUsage("images/") . ' Bytes';


?>

Viele Grüsse,
Erk Nissen

DokuLeseHemmung
27.05.2009, 16:59:14
<?php
function my_filesize($dir)
{
$size = 0;
foreach(glob($dir.'/*',GLOB_NOSORT) as $file)
{
if(is_file($file)) $size = bcadd($size,filesize($file));
if(is_dir($file)) $size = bcadd($size,my_filesize($file));
}
return $size;
}

function bcdivround($dividend, $divisor, $genauigkeit = 5)
{
$quotient = bcdiv($dividend, $divisor, $genauigkeit);
return bcdiv(bcadd($quotient,0.5),1,0);
}



// testcode
$path = realpath('./'); // <<--- anpassen
$byte = my_filesize($path);
$kilobyte = bcdivround($byte,bcpow(1024,1,0));
$megabyte = bcdivround($byte,bcpow(1024,2,0));
$gigabyte = bcdivround($byte,bcpow(1024,3,0));
$terabyte = bcdivround($byte,bcpow(1024,4,0));
$petabyte = bcdivround($byte,bcpow(1024,5,0));
$exabyte = bcdivround($byte,bcpow(1024,6,0));
$zettabyte = bcdivround($byte,bcpow(1024,7,0));
$yottabyte = bcdivround($byte,bcpow(1024,8,0));

echo $byte .' Byte<br>';
echo $kilobyte .' KB <br>';
echo $megabyte .' MB <br>';
echo $gigabyte .' GB <br>';
echo $terabyte .' TB <br>';
echo $petabyte .' PB <br>';
echo $exabyte .' EB <br>';
echo $zettabyte.' ZB <br>';
echo $yottabyte.' YB <br>';

?>

cortex
27.05.2009, 17:02:12
Dieses Script gibt mir eine Zahl in Byte aus [...] Jetzt möchte ich aber den noch verbleibenden Speicherplatz in MB beechnen [...] Kann mir jemand helfen?

das ist nicht dein ernst, oder?

http://de.wikipedia.org/wiki/Byte#Gr.C3.B6.C3.9Fenunterschiede_zwischen_den_Bedeutungsauffassungen

btw. nutze die foren-tags zur formatierung von quellcodes - in deinem eigenen interesse.

cx