1. 程式人生 > WINDOWS開發 >Delphi 目錄函式,操作[1] FindFirst、FindNext、TSearchRec - 尋找目標目錄下的第一個檔案和下一個檔案

Delphi 目錄函式,操作[1] FindFirst、FindNext、TSearchRec - 尋找目標目錄下的第一個檔案和下一個檔案

Delphi 目錄操作[1] FindFirst、FindNext - 尋找目標目錄下的第一個檔案和下一個檔案

單元:SysUtils

1、FindFirst //尋找目標目錄下的第一個檔案
函式 原型:

function FindFirst(const Path: string; Attr: Integer; var F: TSearchRec): Integer;
const
  faSpecial = faHidden or faSysFile or faVolumeID or faDirectory;
begin
  F.ExcludeAttr := not Attr and faSpecial;
  F.FindHandle := FindFirstFile(PChar(Path),F.FindData);
  if F.FindHandle <> INVALID_HANDLE_VALUE then
  begin
    Result := FindMatchingFile(F);
    if Result <> 0 then FindClose(F);
  end else
    Result := GetLastError;
end;

返回值:成功找到檔案時,返回 0

Arrt 引數可定義:

  • faReadOnly = $00000001 platform; //只讀檔案
  • faHidden = $00000002 platform; //隱藏檔案
  • faSysFile = $00000004 platform; //系統檔案
  • faVolumeID = $00000008 platform; //卷標檔案
  • faDirectory = $00000010;  //目錄檔案
  • faArchive = $00000020 platform; //歸檔檔案
  • faSymLink = $00000040 platform; //連結檔案
  • faAnyFile = $0000003F; //任意檔案

2、FindNext //尋找下一個檔案

函式原型:

function FindNext(var F: TSearchRec): Integer;
begin
  if FindNextFile(F.FindHandle,F.FindData) then
    Result := FindMatchingFile(F) else
    Result := GetLastError;
end;

返回值:成功找到檔案時,返回0

Arrt 引數,參考以上.

TSearchRec 引數 是一個檔案資訊的記錄型別,可以通過返回值獲取 SearchRec.Name 檔名、SearchRec.Size 檔案大小 等資訊。
TSearchRec 記錄型別原型:

  TSearchRec = record
    Time: Integer;    //檔案時間
    Size: Integer;   //檔案大小
    Attr: Integer;   //檔案屬性
    Name: TFileName; //檔名稱
    ExcludeAttr: Integer;
    FindHandle: THandle  platform;
    FindData: TWin32FindData  platform;
  end;

Delphi 示例:

var 
  SearchRec:TSearchRec; //搜尋物件
  ext,AppPath:string; 
begin 
  Listbox1.Clear; //清空列表框
  AppPath:=Edit1.text; //設定要搜尋的目標目錄
  ext:=‘*.*‘; //設定要搜尋的檔案字尾名
  FindFirst(AppPath+ext,faAnyFile,SearchRec); //-faDirectory 
  Listbox1.Items.Add(SearchRec.Name); //新增檔名
  while FindNext(SearchRec)=0 do
    Listbox1.Items.Add(SearchRec.Name); //新增檔名
end;

  

建立時間:2020.06.18  更新時間: