首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

新手请问一下这段函数?多谢

2012-02-13 
新手请教一下这段函数?谢谢.这个函数是取得文件大小的,我不太熟悉,请指点注释一下.谢谢.functionFileSizeE

新手请教一下这段函数?谢谢.
这个函数是取得文件大小的,我不太熟悉,请指点注释一下.谢谢.
function   FileSizeEx(const   FileName:   string):   Int64;   //取得文件大小
{
  返回文件FileName的大小
}
var
    Info:   TWin32FindData;
    Hnd:   THandle;
begin
    Result   :=   -1;
    Hnd   :=   FindFirstFile(PChar(FileName),   Info);//?
    if   (Hnd   <>   INVALID_HANDLE_VALUE)   then
    begin
        Windows.FindClose(Hnd);
        Int64Rec(Result).Lo   :=   Info.nFileSizeLow;//?
        Int64Rec(Result).Hi   :=   Info.nFileSizeHigh;//?
    end;
end;

[解决办法]
Hnd := FindFirstFile(PChar(FileName), Info);//查找文件并返回文件的信息
if (Hnd <> INVALID_HANDLE_VALUE) then
begin
Windows.FindClose(Hnd);
Int64Rec(Result).Lo := Info.nFileSizeLow;//将文件大小的低32位存到结果的低32位
Int64Rec(Result).Hi := Info.nFileSizeHigh;//将文件大小的高32位存到结果的高32位
end;
因为获得的文件大小虽然是64位数,但是存放在两个32位数中,所有要转存两次,分别存放高低32位

热点排行