小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

計(jì)算目錄大小的函數(shù),獲得目錄文件列表,計(jì)算文件的大小

 aaie_ 2012-06-28

獲取指定擴(kuò)展名的文件

//獲取文件列表 三個(gè)參數(shù)分別是:路徑,擴(kuò)展名,搜索結(jié)果保存變量
procedure FindAllFile(const Dir: string;ext:string;List: TStringlist);
var
  hFindFile: THandle;
  FindFileData: WIN32_FIND_DATA;
  FullName,FName,s:string;
begin
  s:=IncludeTrailingPathDelimiter(Dir);
  hFindFile := FindFirstFile(pchar(s+'*.'+ext), 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,ext,List)
      else
        begin
          List.Add(FullName);
        end;
    until FindNextFile(hFindFile, FindFileData) = false;
    windows.FindClose(hFindFile);
  end;
end;

=====================================================

這個(gè)函數(shù)可以獲得指定目錄下所有的文件路徑+名稱,能夠遞歸搜索:

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;
這個(gè)函數(shù)可以獲得指定文件的大?。?/p>

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;
要獲得目錄的總大小,可以先用第一個(gè)函數(shù)獲得所有目錄下文件的列表,然后遍歷這個(gè)列表,累加文件尺寸。

 

本文來(lái)自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/mrtechno/archive/2007/07/09/1683308.aspx

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多