la "cartella" (che poi si chiama directory) non è altro che un file particolare e puoi usare le stesse funzioni. Per quanto riguarda le dimensioni però non otterrai il peso del suo contenuto, ma otterrai 0 perchè la directory in se non pesa nulla.

Per il peso di una directory io uso questa:

codice:
  /**
    * var string $dir path assoluto
    * var string $files_da_escludere nomi di file da escludere separati da virgola.
    */
  function dirSize($dir, $files_da_escludere = '') {

    $mas = 0;

    $handle = opendir($dir);

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

      $esclusione = array('.', '..');

      if($files_da_escludere) {

        $esclusione = array_merge($esclusione, explode(',', $files_da_escludere));

      }

      if (!in_array($file, $esclusione) && !is_dir($dir.'/'.$file)) {

        $mas += filesize($dir.'/'.$file);

      } else if (is_dir($dir.'/'.$file) && !in_array($file, $esclusione)) {

        $mas += dirSize($dir.'/'.$file, $files_da_escludere);

      }
   }

   return $mas;

  }
ciao