function GetFolderSize(vFolder: String): Int64;
var
sr: TSearchRec;
begin
Result := 0;
if FindFirst(vFolder + '*.*', faAnyFile, sr) = 0 then
repeat
if (sr.Name <> '.') and (sr.Name <> '..') then
begin
Result := Result + sr.Size;
if (sr.Attr and faDirectory) <> 0 then
Result := Result + GetFolderSize(vFolder + sr.Name + '\');
end;
until FindNext(sr) <> 0;
FindClose(sr);
end;
------------------------------------
调用ShowMessage(IntToStr(GetFolderSize('e:\')));//注意参数最后一个字母应该为'\'