Ну, все же предельно просто - указываешь в параметрах ф-ии еще 3 параметра:
1. Тип (маска) для файлов, размер которых надо считать.
2. var параметр для размера всей папки, в которой мы ищем
3. var параметр для размера только тех файлов, что мы указали в п.1
А на счет суммирования - все просто, у тебя будет 2 параметра, объявленные как var - их и суммируешь. например:
Код:
procedure CreateFileList (LogFile,StartDir: String; Mask: String; SpecMask: String; var iFullDirSize: Integer; var iSpecMaskSize: Integer; FindSubDir: Boolean = True);
вот и во время поиска, ты к iFullDirSize прибавляй р-р найденного по Mask файла, потом проверяй, соответствует ли найденный файл еще и маске SpecMask, если да то прибавляй к iSpecMaskSize его размер...
А размер файла можно получить при помощи API GetFileSize
Либо вот так:
Код:
function GetFileSizeByPath(sFileName: String): Int64;
var
FindData: TWin32FindData;
hFind: THandle;
begin
Result := 0;
hFind := FindFirstFile(PChar(sFileName), FindData);
if hFind <> INVALID_HANDLE_VALUE then
begin
Windows.FindClose(hFind);
if (FindData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) = 0 then
Result := FindData.nFileSizeLow;
end;
end;