Функция DirGetSize

         Описание функции


DirGetSize

Возвращает размер указанного каталога (в байтах).

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

Параметры

path Каталог, размер которого необходимо узнать, например "C:\Windows".
flag [необязательный] Этот флаг указывает поведение функции, и возвращаемые ею результаты
и может быть комбинацией следующих значений:
0 = (по умолчанию)
1 = расширенный режим -> возвращает массив с дополнительной информацией (см. примечания).
2 = не получать размер файлов в подкаталогах (без рекурсивного режима)

Возвращаемое значение

Успех:Возвращает >= 0
Ошибка:Возвращает -1 и устанавливает значение @error равным 1, если путь не существует.

Примечания

Если скрипт приостановлен, то выполнение этой функции также приостанавливается и продолжается только после возобновления работы скрипта!

Если использован расширенный режим, функция возвращает одномерный массив со следующей информацией:
$array[0] = размер
$array[1] = число файлов
$array[2] = число каталогов

См. также

FileGetSize

Пример

$iSize = DirGetSize(@WindowsDir)
MsgBox(4096, "", "Размер (Мегабайт):" & Round($iSize / 1024 / 1024))

$iSize = DirGetSize(@WindowsDir, 2)
MsgBox(4096, "", "Размер (Мегабайт):" & Round($iSize / 1024 / 1024))

$hTimer = TimerInit()
$aSize = DirGetSize("\\10.0.0.1\h$", 1)
$iDiff = Round(TimerDiff($hTimer) / 1000, 2) ; время в секундах
If IsArray($aSize) Then
    MsgBox(4096, "Результат", _
            "Размер (Байт): " & $aSize[0] & @LF & _
            "Файлов: " & $aSize[1] & @LF & _
            "Каталогов: " & $aSize[2] & @LF & _
            "Время выполнения (сек): " & $iDiff)
EndIf