(1)TSearchRec是一個記錄類型,在delphi幫助文檔下可以看到其定義:
TSearchRec是一個文件信息的紀錄(Record)類型
在Windows下原型:
type
TSearchRec = record
Time: Integer;
Size: Integer;
Attr: Integer;
Name: TFileName;
ExcludeAttr: Integer;
FindHandle: THandle;
FindData: TWin32FindData;
end;
(2).FindFirst函數在delphi幫助下的定義:
function FindFirst(const Path: string; Attr:
Integer; var F: TSearchRec): Integer;
其中有一句:FindFirst returns 0 if a file was successfully
located
也就是說,當成功找到文件時,返回0.
(3).sr.Attr是查找的文件屬性(attribute
Files).faDiractory是目錄文件
整句的意思
如果查找的文件類型是目錄文件那么 ...
(4).當文件沒有查找完畢(還能查找到下一個文件)..
*****************************************************
FindFirst是用來尋找目標目錄下的第一個文件,FindNext則是尋找下一個 TSearchRec是一個文件信息的紀錄,當FindFirst返回SearchRec時,你可以通過SearchRec.Name獲取文件名,以及SearchRec.Size獲取文件大小等信息。
TSearchRec類型定義如下:
type
TSearchRec = record
Time : Integer;
Size : Integer;
Attr : Integer;
Name : TFileName;
ExcludeAttr : Integer;
FindHandle : THandle;
FindData : TWin32FindData;
end;
當利用FindFirst和FindNext函數找到一個文件后,利用這個類型可以獲得文件的屬性、大小和修改時間等信息。
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;
//更多注釋: //TSearchRec 結構是內涵文件大小、名稱、屬性與時間等信息 //TSearchRec 中的屬性是一個整數值, 可能的值有: //faReadOnly 1 只讀文件 //faHidden 2 隱藏文件 //faSysFile 4 系統文件 //faVolumeID 8 卷標文件 //faDirectory 16 目錄文件 //faArchive 32 歸檔文件 //faSymLink 64 鏈接文件 //faAnyFile 63 任意文件 //s 的值也可以使用?通配符,好像只支持7個?, 如果沒有條件就是*, 譬如: C:\* //實際使用中還應該在 repeat 中提些條件, 譬如判斷如果是文件夾就遞歸搜索等等
function
FindFirst(
const
Path:
string
;
//包含路徑和通配符的字符串,如f:\test\*.*
Attr:
Integer
;
//文件屬性
var
F: TSearchRec
//一個結構(或叫記錄)
):
Integer
;
//返回值,成功返回0 ,失敗返回-1
|