首页 > 程序设计 > delphi中得到文件的大小

delphi中得到文件的大小

2012年12月27日

delphi中得到文件的大小

var
vSearchRec: TSearchRec;
begin
FindFirst(‘<文件名>’, faAnyFile, vSearchRec);
Caption := IntToStr(vSearchRec.Size);
// vSearchRec.FindData.ftCreationTime//创建时间
// vSearchRec.FindData.ftLastAccessTime//访问时间
// vSearchRec.FindData.ftLastWriteTime//修改时间
FindClose(vSearchRec);
end;

 

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

这个函数可以获得指定目录下所有的文件路径+名称,能够递归搜索:

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;

程序设计 浏览18 次

本文的评论功能被关闭了.