如何快速得到一个目录里所有文件的总容量!就是目录的大小,!88分,!吉利!(88分)

  • 主题发起人 主题发起人 阿宝
  • 开始时间 开始时间

阿宝

Unregistered / Unconfirmed
GUEST, unregistred user!
如何得到一个目录里所有文件的总容量!
就是目录的大小,然后再得到他里面每个子目录的大小!!
遍历每一个文件,每一个子目录嘛、??这样很麻烦,有什么现成的函数之类的嘛?懒得查了!
高手指点!!88分
 
不可能一下子得到了
只能遍历目录自己加上了
你没有看到Windows自己的属性看目录大小时也是一个一个加上的么??
 
肯定没有现成的函数把所有的目录和文件都查出来,自己动手写一个递归程序就可以了
用取文件和取目录的函数取出最顶级的目录和文件,然后判断目录里是否有东西,如果有
就递归查询下一级目录,直到所有的目录都没有子目录就可以了
 
同意。枚举文件你可以看一下前面的贴子。
 
正好前几天要用,作了一个。
uses ShellApi

function GetDirectorySize(Path: String): Integer; //eg. Path = 'c:/temp/'
var
SR: TSearchRec;
begin
Result := 0;
if FindFirst(Path + '*.*', faAnyFile, SR) = 0 then
begin
if (sr.Name <> '.') and (sr.Name <> '..') and (sr.Attr = faDirectory) then
Result := Result + GetDirectorySize(Path+Sr.Name+'/')
else
Result := Result + Sr.Size;
while FindNext(sr) = 0 do
if (sr.Name <> '.') and (sr.Name <> '..') and (sr.Attr = faDirectory) then
Result := Result + GetdirectorySize(Path+Sr.Name+'/')
else
Result := Result + Sr.Size;
FindClose(sr);
end;
end;

ps:觉得好可以再多给点分。
 
呀,来晚了,我也是前几天刚写了一个,
不过好像和楼上的一摸一样!
 
多人接受答案了。
 

Similar threads

回复
0
查看
1K
不得闲
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部