[Delphi] 计算目录大小的函数,获得目录文件列表,计算文件的大小


本文整理自网络,侵删。

  [Delphi] 计算目录大小的函数,获得目录文件列表,计算文件的大小 .
这个函数可以获得指定目录下所有的文件路径+名称,能够递归搜索:

procedure FindAllFile(const Dir: string;List: TStringlist);
var
hFindFile: THandle;
FindFileData: WIN32_FIND_DATA;
FullName,FName,s:string;
begin
s:=IncludeTrailingPathDelimiter(Dir);
hFindFile := FindFirstFile(pchar(s+'*.*'), FindFileData);
if hFindFile <> 0 then begin
repeat
FName:=FindFileData.cFileName;
FullName:=s+FName;
if (FName='.') or (FName='..') then continue;
if (FindFileData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) = FILE_ATTRIBUTE_DIRECTORY then // www.delphitop.com
FindAllFile(FullName,List)
else
begin
List.Add(FullName);
end;
until FindNextFile(hFindFile, FindFileData) = false;
windows.FindClose(hFindFile);
end;
end;

这个函数可以获得指定文件的大小:

function GetFileSizeByName(AFileName: string): Int64;
var
h: THandle;
dwHigh,dwLow:DWORD;
begin
dwHigh:=0;
if FileExists(AFileName) then
begin
h:= FileOpen(AFileName,fmOpenRead or fmShareDenyNone);
dwLow:=GetFileSize(h,@dwHigh);
if (dwLow = $FFFFFFFF) and (GetLastError() <> NO_ERROR) then
Result:=0
else
Result:= (dwHigh shl 32) + dwLow;
FileClose(h);
end
else
Result := 0;
end;

要获得目录的总大小,可以先用第一个函数获得所有目录下文件的列表,然后遍历这个列表,累加文件尺寸。

相关阅读 >>

Delphi cxgrid应用笔记

Delphi 动态添加资源文件

Delphi 查找指定目录,指定扩展名的所有文件名

Delphi xe android 程序切换到后台及从后台切换到前台实现

Delphi 与 xml 示例(直接利用ixmldocument)

Delphi 动态数组的释放

Delphi 验证tstrings是否存在

Delphi 获取image.picture.data的数据

Delphi randstring 随机字符串

Delphi版pspterminateprocess驱动源码

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...