1、使用FindFirst函数和FindNext函数就可以查找出文件夹内所有的文件名,编写如下一个函数:
function searchfile(path:string):TStringList;
var SearchRec:TSearchRec;
found:integer;
list:TStringList;
begin
list:=TStringList.Create;
found:=FindFirst(path+'\*.*',faAnyFile,SearchRec);
while found=0 do
begin
if (SearchRec.Name<>'.') and (SearchRec.Name<>'..') and (SearchRec.Attr<>faDirectory)
then List.Add(SearchRec.Name);
found:=FindNext(SearchRec);
end;
FindClose(SearchRec);
searchfile:=list;
end;
2、使用searchfile(要查找的路径),就可以得到所有文件名,如下示例:
procedure TForm1.btn1Click(Sender: TObject);
begin
mmo1.Lines.AddStrings(searchfile('G:\BaiDu\baidu_code\bigimg'));
end;
效果如下:
uses
IOUtils, Types;
procedure TForm1.Button3Click(Sender: TObject);
var
files: TStringDynArray;
str: string;
begin
files := TDirectory.GetFiles('C:\WINDOWS\你自己改这里的路径', '*.txt', TSearchOption.soAllDirectories); //TSearchOption.soAllDirectories 所有文件和文件夹
//files := TDirectory.GetFiles(C:\WINDOWS\你自己改这里的路径‘, '*.exe', TSearchOption.soTopDirectoryOnly); //仅目录第一层 *.exe 可以改成你的文件后缀,可以*.*
Memo1.Clear;
for str in files do
Memo1.Lines.Add(str);
end;
新版本用上边的代码很方便,要是D7你百度一下 有现成的。