Процедура вычисления размера каталога
Автор: Panov
WEB-сайт: http://delphibase.endimus.com
{ **** 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 ;
Если Вас заинтересовала или понравилась информация по разработке на Delph - "Процедура вычисления размера каталога", Вы можете поставить закладку в социальной сети или в своём блоге на данную страницу:
Так же Вы можете задать вопрос по работе этого модуля или примера через форму обратной связи , в сообщение обязательно указывайте название или ссылку на статью!