本文整理自网络,侵删。
注意函数返回值类型是Int64,如果文件存在则返回文件大小,否则返回0。
function FileSize(FileName: string): Int64;
var
sr: TSearchRec;
begin
if FindFirst(FileName, faAnyFile, sr) = 0 then
Result := Int64(sr.FindData.nFileSizeHigh) shl 32 + Int64(sr.FindData.nFileSizeLow)
else
Result := 0;
FindClose(sr);
end;由此可以得到获取文件夹大小的函数如下:
function FolderSize(FolderName: string): Int64;
var
sr: TSearchRec;
begin
Result := 0;
if RightStr(FolderName, 1) <> '\' then FolderName := FolderName + '\';
if FindFirst(FolderName + '*.* ', faAnyFile, sr) = 0 then
repeat
if (sr.Name <> '.') and (sr.Name <> '..') then begin
Result := Result + FileSize(FolderName + sr.Name);
if (sr.Attr and faDirectory) <> 0 then
Result := Result + FolderSize(FolderName + sr.Name + '\');
end;
until FindNext(sr) <> 0;
FindClose(sr);
end;参考:
1.File Size - Get the Size of a File in Bytes using Delphi
http://delphi.about.com/od/delphitips2008/qt/filesize.htm
相关阅读 >>
Delphi 10 seattle中使用本地通知,请使用tnotificationcenter组件
Delphi关于tjpegimage的使用(bmp\ jpg格式转换)
更多相关阅读请进入《Delphi》频道 >>