请问这个函数怎么不好用(一个目录下所有文件)请试一试
procedure TForm1.GetAllFiles3(MainPath: String);
var
nI: Integer;
SearchRec: TSearchRec;
sFileName: String;
sMainpath: String;
begin
if MainPath[Length(MainPath)]='\' then
sMainpath:=MainPath
else
sMainpath:=MainPath+'\';
FindFirst(sMainPath+'*.*',faAnyFile,SearchRec);
if SearchRec.Name<>'' then
begin
sFileName:=UpperCase(SearchRec.Name);
if (Pos('.ZIP',sFileName)=Length(sFileName)-3) then
begin
Listbox1.Items.Add(sMainPath+SearchRec.Name);
showmessage(smainpath+searchrec.Name);
end;
if (SearchRec.Attr and faDirectory)=faDirectory then
if (SearchRec.Name<>'.') and (SearchRec.Name<>'..') then
GetAllFiles(sMainPath+SearchRec.Name);
while (FindNext(SearchRec)=0) do
begin
sFileName:=UpperCase(SearchRec.Name);
if (Pos('.ZIP',sFileName)=Length(sFileName)-3) then
begin
listbox1.Items.Add(sMainPath+SearchRec.Name);
showmessage(smainpath+searchrec.Name);
end;
if (SearchRec.Attr and faDirectory)=faDirectory then
if (SearchRec.Name<>'.') and (SearchRec.Name<>'..') then
GetAllFiles(sMainPath+SearchRec.Name);
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
GetAllFiles3('c:\');
end;
[解决办法]
1L的是找目录下所有文件,这个我在其他帖也发表过,函数大概差不多,要找文件夹估计也就是函数名不一样?你找找,因为没有找过文件夹,
[解决办法]
if (SearchRec.Attr and faDirectory)=faDirectory then
if (SearchRec.Name<>'.') and (SearchRec.Name<>'..') then
GetAllFiles(sMainPath+SearchRec.Name);
end;
你这里决断的是文件属性是文件夹的,里面调用的是GetAllFiles,递归调用,但我看你的过程名好象是GetAllFiles3吧