吵吵   2011-03-03  阅读:2,303

写这个函数真的有点费脑筋的,用delphi试验过了好久才写出来,由于有自身调用的问题,刚开始还会出现找出重复文件的问题,还好在我的耐心下一一解决了这个函数如下:
顶部
//delphi文件查找函数,by吵吵。
var
StrList:tstringlist;//在顶部定义


// 函数如下,by吵吵
function GetDirFile(TypeName: String; DirName: String):tstringlist;
var

sr: TSearchRec;
FileAttrs: Integer;
begin
strlist:=tstringlist.create;
FileAttrs := faAnyFile;
if FindFirst(DirName+'*.*', FileAttrs, sr) = 0 then
begin
repeat
if (sr.Name <> '.') and (sr.Name <> '..') then

begin
if (sr.Attr and faDirectory)<>0 then

begin
GetDirFile(TypeName,DirName+sr.Name +'\');

end
else
begin
if (sr.Attr and FileAttrs) = sr.Attr then
begin
if (pos(TypeName,sr.Name )<>0) then
begin
//将找到的文件添加到字符串列表中
StrList.Add(dirname+sr.name);

end;
end;
end;
end;
until FindNext(sr) <> 0;
FindClose(sr);
end;
result:=strlist;
end;


但是使用上面这个函数呢,要注意一个问题,那就是strlist要在开头定义,也就是要定义成全局的,因为涉及到自身调用的问题,函数中的变量会在内存中释放的。

吵吵微信朋友圈,请付款实名加入:

吵吵 吵吵

发表评论

电子邮件地址不会被公开。 必填项已用*标注