怎样获得某一目录(包括子目录)的容量?(50分)

  • 主题发起人 主题发起人 delphiinfomail
  • 开始时间 开始时间
某一目录的可用的容量=该盘的剩余容量
 
对不起!意思说错了!我的意思是,怎样获得某一目录(包括子目录)的文件总和的大小?
 
当然是用递归啦,不过这算法好慢的,不知道windows command是如何做到的,
好象一按空格,目录大小就出来了
 
下面的代码速度还可以。
procedure TForm1.Button1Click(Sender: TObject);
procedure PathSize(var MySize : Integer; const AnyFile:String);
var
Found:integer;
SearchResult:TSearchRec;
begin
Found:=FindFirst(AnyFile+'/*.*',faAnyFile,SearchResult);
while Found=0 do begin
if (SearchResult.Name<>'.')and(SearchResult.Name<>'..')and(SearchResult.Attr=faDirectory) then begin
PathSize(MySize,AnyFile+'/'+SearchResult.Name);
end else begin
MySize:=MySize+SearchResult.Size;
end;
Found:=FindNext(SearchResult);
end;
if (SearchResult.Name<>'.')and(SearchResult.Name<>'..') then FindClose(SearchResult);
end;
var
i:Integer;
begin
i:=0;
PathSize(i,'c:');
button2.Caption:=inttostr(i);
end;
 
接受答案了.
 
后退
顶部