Процедура вычисления размера каталога

Советы » Каталоги » Процедура вычисления размера каталога

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Процедура вычисления размера каталога

Вычисляет размер файлов в каталоге и подкаталогах,
использую функции FindFirst/FindNext/FindClose

Зависимости: Masks;
Автор:       panov, panov@hotbox.ru
Copyright:   Нет
Дата:        30 марта 2004 г.
***************************************************** }

procedure

GetDirSize(const

aPath: string

; var

SizeDir: Int64); var

SR: TSearchRec; tPath: string

; begin

tPath := IncludeTrailingBackSlash(aPath); if

FindFirst(tPath + '*.*', faAnyFile, SR) = 0 then

begin

try

repeat

if

(SR.Name = '.') or

(SR.Name = '..') then

Continue; if

(SR.Attr and

faDirectory) <> 0 then

begin

GetDirSize(tPath + SR.Name, SizeDir); Continue; end

; SizeDir := SizeDir + (SR.FindData.nFileSizeHigh shl

32) + SR.FindData.nFileSizeLow; until

FindNext(SR) <> 0; finally

Sysutils.FindClose(SR); end

; end

; end

;

Пример использования:

procedure

TForm1.Button1Click(Sender: TObject); var

SizeDir: Int64; begin

SizeDir := 0; GetDirSize('c:winnt', SizeDir); ShowMessage('Размер каталога ' + IntToStr(SizeDir)); end

;

Другое по теме:

Категории

Статьи

Советы

Copyright © 2022 - All Rights Reserved - www.delphirus.com