Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Размер папки


Батыр ©   (2006-07-22 03:33:00) 

Нет ли такой функции, которая возращала размер каталога.


medved_68   (2006-07-22 12:06:00) [1]


> Нет ли такой функции, которая возращала размер каталога.


> Батыр  

Вот выдрал не помню откуда, но у меня в проектах работает нормально.

procedure TDiscSaze.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;

При помощи этой бодяги подсчитываю размеры вложенных папок.


Ketmar   (2006-07-22 10:35:00) [2]

ручками писать. перебором-с...


Loginov Dmitry   (2006-07-22 08:16:00) [3]

Если бы была, то TatalCommander наверное так не тормозил бы при подсчете размера каталога (например при нажатии Space)


Наверх

Титульная страница Поиск, карта сайта Написать письмо