想获取指定目录下的所有文件和目录,并在ListView下显示出来.

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
       SearchRec:TSearchRec;
       ext,AppPath:string;
    begin
        listbox1.Items.Clear;
         AppPath:='d:\test\';
         ext:='*.*';
         FindFirst(AppPath+ext,faAnyFile-faDirectory,SearchRec);
         listbox1.Items.Add(SearchRec.Name);
         while FindNext(SearchRec)=0 do
           listbox1.Items.Add(SearchRec.Name);
         listbox1.items为你需要的结果
    end;
      

  2.   

    function GetFileName(DireStr: string; FileName: string): string;
    var
      sr: TSearchRec;
      FileAttrs: Integer;
    begin
      Result:='';
      FileAttrs := faArchive;
      if FindFirst(DireStr + FileName, FileAttrs, sr) = 0 then
      begin
        if (sr.Attr and FileAttrs) = sr.Attr then
          Result := Result + DireStr + sr.Name + #13#10;
        while FindNext(sr) = 0 do
        begin
          if (sr.Attr and FileAttrs) = sr.Attr then
            Result := Result + DireStr + sr.Name + #13#10;
        end;
        FindClose(sr);
      end;
    end;function GetDireFile(DireStr: string; FileName: string): string;
    var
      sr: TSearchRec;
      FileAttrs: Integer;
      TempDireStr: string;
    begin
      Result := '';
      Result:=Result+GetFileName(DireStr,FileName);
      FileAttrs := faDirectory;
      if FindFirst(DireStr + '*.*', FileAttrs, sr) = 0 then
      begin
        if ((sr.Attr and FileAttrs) = sr.Attr) and (sr.Name <> '.') and (sr.Name <> '..') then
        begin
          TempDireStr := DireStr + sr.Name;
          if TempDireStr[Length(TempDireStr)] <> '\' then
            TempDireStr := TempDireStr + '\';
          Result := Result + GetDireFile(TempDireStr, FileName);
        end;
        while FindNext(sr) = 0 do
        begin
          if ((sr.Attr and FileAttrs) = sr.Attr) and (sr.Name <> '.') and (sr.Name <> '..') then
          begin
            TempDireStr := DireStr + sr.Name;
            if TempDireStr[Length(TempDireStr)] <> '\' then
              TempDireStr := TempDireStr + '\';
            Result := Result + GetDireFile(TempDireStr, FileName);
          end;
        end;
        FindClose(sr);
      end;
    end;
      

  3.   

    http://haitian.myrice.com/Soft/MyPubFuncUnit.Txt
      

  4.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
       ASearchRec:TSearchRec;
    begin
        listview1.Items.Clear;
         FindFirst('D:\*.*',faAnyFile,SearchRec);
         listview1.Items.Add.Caption := SearchRec.Name;
         while FindNext(SearchRec)=0 do
           listview1.Items.Add.Caption := searchrec.Name;
    end;