irgendjemand: FTP - Ordnergröße ermitteln?

Hi,
ich habe mir ein FTP-Script mit PHP geschrieben.
Meine Frage ist, wie kann ich die Größe eines Ordners ermitteln?

mfG irgendjemand ;)

  1. Hello,

    ich habe mir ein FTP-Script mit PHP geschrieben.
    Meine Frage ist, wie kann ich die Größe eines Ordners ermitteln?

    Ich befürchte, dass Du da nur mit ftp_rawlist()
    http://www.php.net/manual/en/function.ftp-rawlist.php
    weiter kommst.

    Liste auslesen und diese dann parsen und addieren.

    Liebe Grüße aus Syburg

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. Hi,
      Problem gelöst!
      ich hab mir ein Script "gebastelt" welches jeden Ordner öffnet, die Größe der Dateien ausließt und dann alles addiert.

      $ftp = ftp_connect($host, $port);
        $login = ftp_login($ftp, $user, $pass);
        $rawlist = ftp_rawlist($ftp, $dir);
        $dir = ftp_pwd($ftp);
        $webspace = array();
        $ordner = array();
         #im root-Verzeichnis die Dateien und Ordner trennen und die Dateigrößen speichern
        foreach($rawlist as $data) {
          $data = preg_split ('°[\s]+°', $data);
          if(substr($data['0'], 0, 1) == "d") {
            $ordner[] = $data['8'];
          }
          $webspace[] = $data['4'];
        }
        #und nun das Gleiche für die ganzen Unterordner
        for($i = 0; $i < count($ordner); $i++) {
          $ftp2 = ftp_connect($host, $port);
          $login2 = ftp_login($ftp2, $user, $pass);
          ftp_chdir($ftp2, $ordner[$i%count($ordner)]);
          $dir2 = ftp_pwd($ftp2);
          $rawlist2 = ftp_rawlist($ftp2, $dir2);
          foreach($rawlist2 as $data) {
            $data = preg_split ('°[\s]+°', $data);
            $webspace[] = $data['4'];
            if(substr($data['0'], 0, 1) == "d") {
              $ordner[] = $ordner[$i%count($ordner)]."/".$data['8'];
            }

      }
          ftp_chdir($ftp2, "/");
          ftp_close($ftp2);
        }
        ftp_close($ftp);
        echo array_sum($webspace);

      Ich möchte nähmlich das man auf meinen Server 1GB webspace zur Verfügung hat.
      Daher muss errechnet werden wie viel schon voll ist^^.

      1. Hi,

        Ich möchte nähmlich das man auf meinen Server 1GB webspace zur Verfügung hat.

        Heisst das, du betreibst selbst eine Art Hosting-Dienst, auf dem die Nutzer Accounts bekommen>

        Daher muss errechnet werden wie viel schon voll ist^^.

        Dann solltest du dich mit Disk Quotas beschäftigen, anstatt selbst solche halbgaren "Lösungen" dafür zu basteln.

        MfG ChrisB

        --
        Light travels faster than sound - that's why most people appear bright until you hear them speak.
        1. Hi,

          Heisst das, du betreibst selbst eine Art Hosting-Dienst, auf dem die Nutzer Accounts bekommen

          Ja, aber es ist noch in Arbeit^^.
          Da hab ich doch gleich noch eine Frage ;)
          Wie kann ich per PHP einen User beim FileZilla-Server anlegen?

          Dann solltest du dich mit Disk Quotas beschäftigen, anstatt selbst solche halbgaren "Lösungen" dafür zu basteln.

          Was ist dieses Disk Quotas?

          mfG

      2. Hello,

        ftp_rawlist() arbeitet auf Wunsch auch rekursiv.
        Schau nochmal in die Doku http://www.php.net/manual/en/function.ftp-rawlist.php

        Liebe Grüße aus Syburg

        Tom vom Berg

        --
        Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de