en Delphi, utilizando una variable de tipo TSearchRec
aqui esta una funcion que te regresa el tamaño de cualquier archivo:
function TamanoArchivo(const Archivo:string):Integer;
var S:TSearchRec;
begin
Result:=-1; //default
if (FindFirst('miarchivo.txt', faAnyFile, S)=0) then
begin
Result:=S.Size;
FindClose(S)
end
end;
function TamanoCarpeta(const Carpeta:string):Integer;
var S:TSearchRec;
begin
Result:=0; //default
if (FindFirst(IncludeTrailingBackslash(Carpeta)+'*.*', faAnyFile, S)=0) then
repeat
Inc(Result, S.Size);
until (FindNext(S)<>0)
else
Result:=-1;
FindClose(S)
end;
para encontrar el tamaño de una carpeta, no hay nada en windows que lo pueda hacer... tienes que ir archivo por archivo, sumando el tamaño de todos... similar al anterior