如何得到一个目录下的的所有文件名,,并把这些文件名放入一个TStrings中?

解决方案 »

  1.   

    List:=TStringList.Create ;
      if (findfirst(Sourdir+'*.*',faAnyFile,searchrec)=0) then
      begin
        if (searchrec.Name<>'.') and (searchrec.Name<>'..') then
          List.Add( Sourdir+searchrec.Name);
        while (findnext(searchrec)=0) do
          if (searchrec.Name<>'.') and (searchrec.Name<>'..') then
            List.Add( Sourdir+searchrec.Name);
      end;
      

  2.   

    searchrec:Tsearchrec;
      List:TStringList;
      

  3.   

    var
      sr : TSearchRec;
      sl : TStringList;
      Dir : String;
    begin
      sl:=TStringList.Create;
      Dir := 'c:\*.*';
      If FindFirst(Dir, faanyfile, sr)=0 Then
      Begin
         sl.Add(sr.Name);
         While FindNext(sr)=0 Do sl.Add(sr.Name);
      End;
    end;
      

  4.   

    procedure SearchFileEx(const Dir: string; Files: TStrings);
    var
      Found: TSearchRec;
      i: integer;
      Dirs: TStrings;
      Finished: integer;
      StopSearch: Boolean;
    begin
      StopSearch := False;
      Dirs := TStringList.Create;
      Finished := FindFirst(Dir + '*.*', 63, Found);
      while (Finished = 0) and not (StopSearch) do
      begin
        if (Found.Name <> '.') then
        begin
          if (Found.Attr and faDirectory) = faDirectory then
            Dirs.Add(Dir + Found.Name)
          else
              Files.Add(Dir + Found.Name);
        end;
        Finished := FindNext(Found);
      end;
      FindClose(Found);
      if not StopSearch then
        for i := 0 to Dirs.Count - 1 do
          SearchFileEx(Dirs[i], Files);
      Dirs.Free;
    end;