Functions > FileDirDisk >


DirGetSize

Obtient la taille en octets d'un répertoire donné.

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

Paramètres

path Le chemin du répertoire concerné. Ex : "C:\Windows".
flag [optionnel] Ce paramètre détermine le comportement et le résultat de la fonction et peut prendre pour valeur une combinaison des valeurs suivantes:
    $DIR_DEFAULT (0) = (par défaut)
    $DIR_EXTENDED (1) = Le mode étendu est activé. Retourne un tableau qui contient les informations étendues (Voir Remarques).
    $DIR_NORECURSE (2) = Ne prend pas en compte la taille des fichiers des sous répertoires (le mode récursif est désactivé).

Les constantes sont définies dans "AutoItConstants.au3"

Valeur de retour

Succès: Retourne la taille supérieure ou égale à 0.
Échec: Retourne -1 et définit @error <> 0 si le chemin n'existe pas.

Remarques

Si le script est mis en pause alors cette fonction est mise en pause également et elle continuera quand le script sera reprit.

Si vous utilisez le mode étendu, alors le tableau retourné par cette fonction est un tableau à 1 dimension contenant les éléments suivants:
    [0] = Taille
    [1] = Nombre de fichiers
    [2] = Nombre de répertoires

Exemple

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

Example()

Func Example()
    Local $iSize = DirGetSize(@HomeDrive)
    MsgBox($MB_SYSTEMMODAL, "", "Taille(MegaOctets): " & Round($iSize / 1024 / 1024))

    $iSize = DirGetSize(@WindowsDir, 2)
    MsgBox($MB_SYSTEMMODAL, "", "Taille(MegaOctets): " & Round($iSize / 1024 / 1024))

    Local $hTimer = TimerInit()

    Local $aSize = DirGetSize("\\10.0.0.1\h$", 1)  ; mode étendu
    If @error = 0 Then
        Local $iDiff = Round(TimerDiff($hTimer) / 1000)  ; temps en secondes
        MsgBox($MB_SYSTEMMODAL, "", "Taille(MegaOctets): " & $aSize[0] & @CRLF _
                 & "Fichiers: " & $aSize[1] & @CRLF & "Dossiers: " & $aSize[2] & @CRLF _
                 & "TimeDiff(Sec): " & $iDiff)
    EndIf
EndFunc   ;==>Example