Почитайте!

Нас читают

Статьи о программировании и не только

Mail.Ru

Rambler's Top100

Programming Blogs - BlogCatalog Blog Directory


Как подсчитать полный размер папки?

Delphi FAQ >> Файлы и каталоги

Эта функция на языке Delphi рекурсивно подсчитывает полный размер указаннолй папки (включая размер подкаталогов).

//возвращает размер папки в байтах
function GetDirFullSize(aPath: String): Int64;
var
  sr: TSearchRec;
  tPath: String;
  sum: Int64;
begin
  //сначала размер принимаем равным нолю
  sum := 0;
  //добавляем завершающий слэш, если нужно
  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
          sum := sum + GetDirFullSize(tPath + sr.Name);
          Continue;
        end;
        //если файл - то добавляем его размер к сумме
        sum := sum + (sr.FindData.nFileSizeHigh shl 32) + sr.FindData.nFileSizeLow;
      until FindNext(sr) <> 0;
    finally
      //возвращаем результат и закрываем поиск
      Result := sum;
      FindClose(sr);
    end;
  end;
end;


Если вычислением размера папки еще можно заняться самостоятельно, то обслуживание видеонаблюдения точно стоит поручить профессионалам :) .