请问各位大侠,在D中,如何让程序访问计算机中所有分区中的所有的目录和文件,用二叉树好像不行,用树不知道行不行,最好给出代码,谢谢!!!!!!(分不够再加)  

解决方案 »

  1.   

    太容易了,有现成的Sample页里面的ShellTreeView就是你要的。
      

  2.   

    太简单了 -_-b
    function DecorateDirPath(aDirPath: String): string;
    begin
      if aDirPath[Length(aDirPath)]<> '\' then
        Result := aDirPath+'\'
      else
        Result := aDirPath;
    end;// 把目录结构与相应文件生成TreeView
    procedure AddTree(var aTreeView: TTreeView; aTypeName, Path : string; ParentNode: TTreeNode; IsAndFile: Boolean);
    var
      SearchRec : TSearchRec;
      IFound : integer;
      newnode : TTreeNode;
    begin
      Path := DecorateDirPath(Path);
      IFound := FindFirst(Path + aTypeName, faAnyFile, SearchRec);
      While IFound = 0 do
      begin
        if (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then
        begin
          if SearchRec.Attr = faDirectory then
          begin
            newnode := aTreeView.Items.AddChild(ParentNode, SearchRec.Name);
            newnode.ImageIndex := 0;
            newnode.SelectedIndex := 1;
            AddTree(aTreeView, aTypeName, Path + SearchRec.Name, newnode, IsAndFile);
          end
          else begin
            if IsAndFile then
            begin
              newnode := aTreeView.Items.AddChild(ParentNode, SearchRec.name);
              newnode.ImageIndex := 2;
              newnode.SelectedIndex := 3;
            end;
          end;
        end;
        IFound := FindNext(SearchRec);
      end;
      FindClose(SearchRec);
    end;不用我教你怎么用吧
      

  3.   

    我想用一个线程来实现,我想CDSoftwareWj(95927)兄的方法还不错,先谢谢了!!