/**
  * Recursively determines the size of a folder in bytes
  * @return int Number of bytes in folder and subfolders
  * @param string $folder Path to folder
  */
 static function getFolderSize($folder)
 {
     // Sanity check
     if (!file_exists($folder)) {
         return 0;
     }
     // Simple delete for a file
     if (is_file($folder) || is_link($folder)) {
         return is_link($folder) ? 0 : filesize($folder);
     }
     // Loop through the folder
     $size = 0;
     $dir = dir($folder);
     while (false !== ($entry = $dir->read())) {
         // Skip pointers
         if ($entry == '.' || $entry == '..') {
             continue;
         }
         // Recurse
         $size += MediabirdUtility::getFolderSize($folder . DIRECTORY_SEPARATOR . $entry);
     }
     // Clean up
     $dir->close();
     return $size;
 }
Beispiel #2
0
	/**
	 * Return quota left for current user
	 * @return int
	 */
	function quotaLeft() {
		//determine quota

		if($records = $this->db->getRecords(MediabirdConfig::tableName("User",true),"id=$this->userId",'','quota')) {
			$quota = intval($records[0]->quota);
		}
		else {
			return 0;
		}

		if ($quota == 0) {
			return -1;
		}

		$folder = $this->getUserFolder();
		if (file_exists($folder)) {
			$folderSize = MediabirdUtility::getFolderSize($folder);
		}
		else {
			$folderSize = 0;
		}

		return $quota-$folderSize;
	}