var sr:TSearchRec; begin if FindFirst('C:\WINDOWS\*.*', faAnyFile, sr) = 0 then begin repeat if (sr.Name<>'.') and (sr.Name<>'..') then begin ListBox1.Items.Add(sr.Name); end; until FindNext(sr) <> 0; FindClose(sr); end; end;
function TFindProcedure.FindFile(FileList: TStringList; FileUrl: string; FindChild: Boolean; ErrorMsg: string): Boolean; var SearchRec: TSearchRec;//记录文件信息的变量 NextUrl: string;//下一次查找的路径 begin Result := False; ErrorMsg := '请输入路径'; if FileUrl = '' then Exit; //查找包含子目录的情况 if FindChild then begin if FindFirst(TestFileUrl(FileUrl) + '*.*', faAnyFile, SearchRec) = 0 then begin repeat //如果找到的文件是目录的话递归调用FindFile方法继续查找 if (SearchRec.Attr = faDirectory) then begin //'.'表示当前目录,'..'表示上一级目录,排除掉 if (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then begin NextUrl := TestFileUrl(FileUrl) + SearchRec.Name + '\'; FindFile(FileList, NextUrl, True, ErrorMsg); end; end //不是目录的话,把文件名(包含路径)放到FileList(TStringList类型的参数)里 else begin if (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then begin FileList.Add(TestFileUrl(FileUrl) + SearchRec.Name); end; end; until FindNext(SearchRec) <> 0; FindClose(SearchRec); end; end //查找不包含子目录 else begin if FindFirst(TestFileUrl(FileUrl) + '*.*', faAnyFile, SearchRec) = 0 then begin repeat if (SearchRec.Attr <> faDirectory) and (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then begin FileList.Add(TestFileUrl(FileUrl) + SearchRec.Name); end; until FindNext(SearchRec) <> 0; FindClose(SearchRec); end; end; Result := True; end;这是我以前做的一个查找文件的例子,希望对你有帮助
var
sr:TSearchRec;
begin
if FindFirst('C:\WINDOWS\*.*', faAnyFile, sr) = 0 then
begin
repeat
if (sr.Name<>'.') and (sr.Name<>'..') then
begin
ListBox1.Items.Add(sr.Name);
end;
until FindNext(sr) <> 0;
FindClose(sr);
end;
end;
var
SearchRec: TSearchRec;//记录文件信息的变量
NextUrl: string;//下一次查找的路径
begin
Result := False;
ErrorMsg := '请输入路径';
if FileUrl = '' then Exit;
//查找包含子目录的情况
if FindChild then
begin
if FindFirst(TestFileUrl(FileUrl) + '*.*', faAnyFile, SearchRec) = 0 then
begin
repeat
//如果找到的文件是目录的话递归调用FindFile方法继续查找
if (SearchRec.Attr = faDirectory) then
begin
//'.'表示当前目录,'..'表示上一级目录,排除掉
if (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then
begin
NextUrl := TestFileUrl(FileUrl) + SearchRec.Name + '\';
FindFile(FileList, NextUrl, True, ErrorMsg);
end;
end
//不是目录的话,把文件名(包含路径)放到FileList(TStringList类型的参数)里
else
begin
if (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then
begin
FileList.Add(TestFileUrl(FileUrl) + SearchRec.Name);
end;
end;
until FindNext(SearchRec) <> 0;
FindClose(SearchRec);
end;
end
//查找不包含子目录
else
begin
if FindFirst(TestFileUrl(FileUrl) + '*.*', faAnyFile, SearchRec) = 0 then
begin
repeat
if (SearchRec.Attr <> faDirectory) and (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then
begin
FileList.Add(TestFileUrl(FileUrl) + SearchRec.Name);
end;
until FindNext(SearchRec) <> 0;
FindClose(SearchRec);
end;
end;
Result := True;
end;这是我以前做的一个查找文件的例子,希望对你有帮助