刚刚学delphi  要做一个查询文件的东东  可就是出错   哪位大侠给看看 function IsValidDir(SearchRec:TSearchRec):Boolean;//是否存在子目录函数
   begin
     if (SearchRec.Attr=16) and
           (SearchRec.Name<>'.') and
              (SearchRec.Name<>'..') then
                 Result:=True
              else
                 Result:=False; 
   end;
Function TForm1.FindAllFileInADirectory(Directory:string;RetList:TStringList): TStringList;
 var
  SearchRec: TSearchRec;
  subdir1: Tstrings;
  i:integer;
begin
  //找出所有下级子目录。
  subdir1:=Tstringlist.Create; //字符串列表动态生成
  if (FindFirst(Directory+'*.*',faDirectory, SearchRec)=0) then //$0000003f
    begin
      if IsValidDir(SearchRec) then
        subdir1.Add(SearchRec.Name);
        showMessage(subdir1.Text);
         while (FindNext(SearchRec) = 0) do
           begin
             if IsValidDir(SearchRec) then
                subdir1.Add(SearchRec.Name);
           end;
         showmessage(subdir1.Text);
    end;     if FindFirst(Directory+'\*.*', $0000003F, SearchRec) = 0 then
       begin //查询当前路径下文件
         if FindFirst(Directory+'\*.*', $0000003F, SearchRec) = 0 then
            begin
              repeat
                RetList.Add(Directory +'\'+ SearchRec.Name);
              until (FindNext(SearchRec) <> 0);
            end;
   FindClose(SearchRec);
        end;
       for i:=0 to subdir1.Count-1 do//遍历子目录查询文件
          begin
            FindAllFIleInADirectory(Directory+subdir1.Strings[i]+'\'+ SearchRec.Name,Retlist);
            RetList.Add(Directory+'\'+ SearchRec.Name);
            subdir1.Free;
          end;
      end;