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;
Если вычислением размера папки еще можно заняться самостоятельно, то обслуживание видеонаблюдения точно стоит поручить профессионалам .