Funktionreferenz


DirGetSize

Beschreibung anzeigen in

Gibt die Größe eines Verzeichnisses in Bytes zurück.

DirGetSize ( "path" [, flag = 0] )

Parameter

path Der Pfad des zu untersuchenden Verzeichnisses, z.B. "C:\Windows".
flag [optional] Dieses Flag bestimmt das Verhalten und Ergebnis der Funktion und kann eine Kombination der folgenden Werte sein:
    $DIR_DEFAULT (0) = (Standard)
    $DIR_EXTENDED (1) = aktiviert den erweiterten Modus ("Extended mode") -> Es wird ein Array zurückgegeben, das weitere Informationen enthält (siehe Bemerkungen).
    $DIR_NORECURSE (2) = bezieht Dateien in Unterverzeichnissen nicht mit ein (der Rekursivmodus ist aus).

Die Konstanten sind in "AutoItConstants.au3" definiert.

Rückgabewert

Erfolg: Die Größe größer als 0 oder gleich 0.
Fehler: -1 und setzt das @error Flag auf ungleich null wenn der Pfad nicht existiert.

Bemerkungen

Wenn das Skript pausiert wird, wird auch diese Funktion unterbrochen und erst fortgeführt, wenn auch das Skript wieder läuft!

Wenn man den erweiterten Modus verwendet, wird ein 1D Array mit folgenden Elementen zurückgegeben:
$aArray[0] = Größe
$aArray[1] = Anzahl der Dateien
$aArray[2] = Anzahl der Verzeichnisse

Beispiel

#include <AutoItConstants.au3>
#include <MsgBoxConstants.au3>

Example()

Func Example()
    Local $iSize = DirGetSize(@HomeDrive)
    MsgBox($MB_SYSTEMMODAL, "", "Größe (MegaBytes): " & Round($iSize / 1024 / 1024))

    $iSize = DirGetSize(@WindowsDir, $DIR_NORECURSE)
    MsgBox($MB_SYSTEMMODAL, "", "Größe (MegaBytes): " & Round($iSize / 1024 / 1024))

    Local $hTimer = TimerInit()

    Local $aSize = DirGetSize("\\10.0.0.1\h$", $DIR_EXTENDED) ; erweiterter Modus
    If Not @error Then
        Local $iDiff = Round(TimerDiff($hTimer) / 1000) ; Zeit in Sekunden
        MsgBox($MB_SYSTEMMODAL, "", "Größe (Bytes): " & $aSize[0] & @CRLF _
                 & "Dateien: " & $aSize[1] & @CRLF & "Verzeichnisse: " & $aSize[2] & @CRLF _
                 & "TimeDiff (Sek): " & $fDiff)
    EndIf
EndFunc   ;==>Example