万一曾写了个“获取程序自身大小的函数”,原文链接如下:
http://www.cnblogs.com/del/archive/2011/11/10/2244453.html

 

挺喜欢这个小函数,做了一点小改动,代码如下:

function GetFileSize(const FileName: string): Int64;
var
SR: TSearchRec;
begin
Result := -1;
if FindFirst(FileName, faAnyFile and (not faDirectory), SR) = 0 then
try
Result := SR.Size;
finally
FindClose(SR);
end;
end;

 

该函数用于获取指定文件的大小,对比万一的函数,主要有两点不同:
1. 排除目录:faAnyFile and (not faDirectory)
   如果只使用faAnyFile,文件名是个目录的话,照样可以获得一个正确结果,只是结果为零。
2. 释放占用的内存资源:FindClose(SR)
   Note: FindFirst allocates resources (memory) which must be released by calling FindClose. (官方说明)

 

本例源代码(Delphi XE2)下载链接如下:
https://files.cnblogs.com/d2012/ex1.zip

posted on 2012-02-25 21:07  兰若笑  阅读(685)  评论(0编辑  收藏  举报