得到目录大小 function TFileBrowser.DirSize(Dir:string):integer; var SearchRec : TSearchRec; Separator : string; begin if Copy(Dir,Length(Dir),1)='\' then Separator := '' else Separator := '\'; if FindFirst(Dir+Separator+'*.*',faAnyFile,SearchRec) = 0 then begin if FileExists(Dir+Separator+SearchRec.name) then begin DirBytes := DirBytes + SearchRec.Size; {Memo1.Lines.Add(Dir+Separator+SearchRec.Name);} end else if DirectoryExists(Dir+Separator+SearchRec.name) then begin if (SearchRec.name<>'.') and (SearchRec.name<>'..') then DirSize(Dir+Separator+SearchRec.name); end; end; while FindNext(SearchRec) = 0 do begin if FileExists(Dir+Separator+SearchRec.name) then begin DirBytes := DirBytes + SearchRec.Size; {Memo1.Lines.Add(Dir+Separator+SearchRec.Name);} end else if DirectoryExists(Dir+Separator+SearchRec.name) then begin if (SearchRec.name<>'.') and (SearchRec.name<>'..') then DirSize(Dir+Separator+SearchRec.name); end; end; end; end; FindClose(SearchRec); end;
FindFirstChangeNotification
FindNextChangeNotification
FindCloseChangeNotification
function TFileBrowser.DirSize(Dir:string):integer;
var
SearchRec : TSearchRec;
Separator : string; begin
if Copy(Dir,Length(Dir),1)='\' then
Separator := ''
else
Separator := '\';
if FindFirst(Dir+Separator+'*.*',faAnyFile,SearchRec) = 0 then
begin
if FileExists(Dir+Separator+SearchRec.name) then
begin
DirBytes := DirBytes + SearchRec.Size;
{Memo1.Lines.Add(Dir+Separator+SearchRec.Name);}
end
else
if DirectoryExists(Dir+Separator+SearchRec.name) then
begin
if (SearchRec.name<>'.') and (SearchRec.name<>'..') then
DirSize(Dir+Separator+SearchRec.name);
end;
end;
while FindNext(SearchRec) = 0 do
begin
if FileExists(Dir+Separator+SearchRec.name) then
begin
DirBytes := DirBytes + SearchRec.Size;
{Memo1.Lines.Add(Dir+Separator+SearchRec.Name);}
end
else
if DirectoryExists(Dir+Separator+SearchRec.name) then
begin
if (SearchRec.name<>'.') and (SearchRec.name<>'..') then
DirSize(Dir+Separator+SearchRec.name);
end;
end;
end;
end;
FindClose(SearchRec);
end;