![]() |
|
||||||||||||||
| | 网站首页 | 数据库教程 | web编程 | 服务器 | 程序设计 | | ||
|
||
|
||||||
| [Delphi] 计算目录大小的函数,获得目录文件列表,计算文件的大小 | ||||||
作者:佚名 文章来源:不详 点击数: 更新时间:2007-8-3 ![]() |
||||||
|
这个函数可以获得指定目录下所有的文件路径+名称,能够递归搜索: 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 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;
要获得目录的总大小,可以先用第一个函数获得所有目录下文件的列表,然后遍历这个列表,累加文件尺寸。
本文来源:http://blog.csdn.net/mrtechno/archive/2007/07/09/1683308.aspx
|
||||||
| 文章录入:admin 责任编辑:admin | ||||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | ||||||
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 网站地图 | 管理登录 | | |||
|