function getTotalFileSize($directory = WP_CONTENT_DIR) { try { if (MainWP_Helper::function_exists('popen')) { $uploadDir = MainWP_Helper::getMainWPDir(); $uploadDir = $uploadDir[0]; $popenHandle = @popen('du -s ' . $directory . ' --exclude "' . str_replace(ABSPATH, '', $uploadDir) . '"', 'r'); if ('resource' === gettype($popenHandle)) { $size = @fread($popenHandle, 1024); @pclose($popenHandle); $size = substr($size, 0, strpos($size, "\t")); if (ctype_digit($size)) { return $size / 1024; } } } if (MainWP_Helper::function_exists('shell_exec')) { $uploadDir = MainWP_Helper::getMainWPDir(); $uploadDir = $uploadDir[0]; $size = @shell_exec('du -s ' . $directory . ' --exclude "' . str_replace(ABSPATH, '', $uploadDir) . '"', 'r'); if (null !== $size) { $size = substr($size, 0, strpos($size, "\t")); if (ctype_digit($size)) { return $size / 1024; } } } if (class_exists('COM')) { $obj = new COM('scripting.filesystemobject'); if (is_object($obj)) { $ref = $obj->getfolder($directory); $size = $ref->size; $obj = null; if (ctype_digit($size)) { return $size / 1024; } } } function dirsize($dir) { $dirs = array($dir); $size = 0; while (isset($dirs[0])) { $path = array_shift($dirs); if (stristr($path, WP_CONTENT_DIR . '/uploads/mainwp')) { continue; } $uploadDir = MainWP_Helper::getMainWPDir(); $uploadDir = $uploadDir[0]; if (stristr($path, $uploadDir)) { continue; } $res = @glob($path . '/*'); if (is_array($res)) { foreach ($res as $next) { if (is_dir($next)) { $dirs[] = $next; } else { $fs = filesize($next); $size += $fs; } } } } return $size / 1024 / 1024; } return dirsize($directory); } catch (Exception $e) { return 0; } }