FindFirst,FindNext,FindClose;(100分)

  • 主题发起人 主题发起人 milesm
  • 开始时间 开始时间
M

milesm

Unregistered / Unconfirmed
GUEST, unregistred user!
我是阿初弟,
我想问FindFist(string,integer,sr), 一是这个FINDFIRST有什么,二是它的三个参数是怎么用的。
 
findfirst是和Findnext配合用的。
 
FindFirst是用来查找文件或目录的,
第一个参数是文件名,如:c:/windows/*.*,
第二个参数是文件属性,如faAnyFile,faDiractory等等,
第三个参数是TSearchRecord记录型参数,用来保存查找的结果。
 
給個範例函式讓你參考

function CheckSearch(ReturnCode: DWORD): boolean;
var
Error: EWin32Error;
begin
Case ReturnCode of
ERROR_SUCCESS: Result := True;
ERROR_FILE_NOT_FOUND, ERROR_NO_MORE_FILES, ERROR_PATH_NOT_FOUND: Result := False;
else begin
Error := EWin32Error.CreateResFmt(@SWin32Error, [ReturnCode,
SysErrorMessage(ReturnCode)]);
Error.ErrorCode := ReturnCode;
raise Error;
end;
end;
end;

procedure SearchFiles(const SourcePath: string; SearchList: TStrings);

procedure SearchFile(Path: string);
var
FindFile: TSearchRec;
begin
Path := IncludeTrailingBackslash(Path);
if CheckSearch(FindFirst(Path + '*.*', faAnyFile, FindFile)) then
repeat
if ((FindFile.Attr and faDirectory) = faDirectory) then begin
if (FindFile.Name[1] <> '.') then SearchFile(Path + FindFile.Name);
end else
SearchList.Add(Path+FindFile.Name);
until not CheckSearch(FindNext(FindFile));
end;

begin
SearchFile(SourcePath);
end;
 
看看delphi自带的帮助啊
 
哥们,帮助中十分详细的.连示例都有.
 
findfirst找第一个文件或目录,用了findfirst后才用findnext找接下来的一个
 
后退
顶部