首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

请教这个函数如何不好用(一个目录下所有文件)请试一试

2012-02-14 
请问这个函数怎么不好用(一个目录下所有文件)请试一试procedure TForm1.GetAllFiles3(MainPath: String)v

请问这个函数怎么不好用(一个目录下所有文件)请试一试
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吧

热点排行