Fix #1143 Add additional check to skip broken symlinks to avoid RuntimeException: SplFileInfo::getSize(): stat failed

This commit is contained in:
Anaggh S 2020-02-27 02:58:05 +05:30
parent 2e2b5a179a
commit 7ae53cfd63
1 changed files with 5 additions and 3 deletions

View File

@ -268,7 +268,7 @@ class Filesystem {
/** /**
* Get Size of file or directory in bytes * Get Size of file or directory in bytes
* @param [string] $fileOrDirectory * @param [string] $fileOrDirectory
* @return [int|bool [bytes or false on error] * @return [int|bool] [bytes or false on error]
*/ */
public static function getSize($fileOrDirectory) { public static function getSize($fileOrDirectory) {
// Files // Files
@ -278,8 +278,10 @@ class Filesystem {
// Directories // Directories
if (file_exists($fileOrDirectory)) { if (file_exists($fileOrDirectory)) {
$size = 0; $size = 0;
foreach(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($fileOrDirectory)) as $file){ foreach(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($fileOrDirectory, FilesystemIterator::SKIP_DOTS)) as $file){
$size += $file->getSize(); if (file_exists($file)) {
$size += $file->getSize();
}
} }
return $size; return $size;
} }