mirror of
https://github.com/prasathmani/tinyfilemanager
synced 2024-05-17 04:56:38 +02:00
Optimized and refactored fm_get_directorysize() function, and added validation. (#720)
This commit is contained in:
parent
7103691048
commit
9b2bb18acb
|
@ -2573,24 +2573,20 @@ function fm_get_filesize($size)
|
|||
}
|
||||
|
||||
/**
|
||||
* Get director total size
|
||||
* @param string $directory
|
||||
* @return int
|
||||
* Get total size of directory tree.
|
||||
*
|
||||
* @param string $directory Relative or absolute directory name.
|
||||
* @return int Total number of bytes.
|
||||
*/
|
||||
function fm_get_directorysize($directory) {
|
||||
global $calc_folder;
|
||||
if ($calc_folder==true) { // Slower output
|
||||
$size = 0; $count= 0; $dirCount= 0;
|
||||
foreach(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory)) as $file)
|
||||
if ($file->isFile())
|
||||
{ $size+=$file->getSize();
|
||||
$count++;
|
||||
$bytes = 0;
|
||||
$directory = realpath($directory);
|
||||
if ($directory !== false && $directory != '' && file_exists($directory)){
|
||||
foreach(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory, FilesystemIterator::SKIP_DOTS)) as $file){
|
||||
$bytes += $file->getSize();
|
||||
}
|
||||
else if ($file->isDir()) { $dirCount++; }
|
||||
// return [$size, $count, $dirCount];
|
||||
return $size;
|
||||
}
|
||||
else return 'Folder'; // Quick output
|
||||
return $bytes;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in a new issue