• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

delphi TTreeView组件遍历磁盘目录

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

TTreeView组件遍历磁盘目录

 实例说明

TTreeView组件是一个以分枝结构或者说树状结构显示数据的组件,以该组件显示数据具有较好的等级关系和逻辑层次,并且易于操作。在组件中显示的数据结构与系统中目录的结构非常相似,所以本例使用该组件设计一个磁盘目录查看工具。运行本例,在窗口右边选择目录或路径就可以在TTreeView组件中列出所有选择目录中的子目录和文件。实例运行效果如图1所示。

1  TTreeView组件遍历磁盘目录

 思路与技术

磁盘中的目录结构就像TTreeView组件中显示的一样,具有较为明显的层次结构,首先将一个目录中的所有子目录及文件名添加到TTreeView组件中,然后再进入该目录中的子目录进行同上一步一样的操作,持续进行多次直到进入最后一层停止,接着回到上一层对下一个目录进行同样的操作。这个过程可以用递归的方法完成。使用FindFirst函数可以列出目录中所有的文件及子目录,该函数原型如下:

function FindFirst(const Path: string; Attr: Integer; var  F: TSearchRec): Integer;

参数说明:

l          Path:查找的文件,如果设置为*.*表示所有的文件及目录。

l          Attr 文件属性。

l          F:搜索信息。

  注意:TTreeView组件的等级关系。

 开发步骤

1)新建一个标准工程,创建一个新窗体,默认主窗体的Name属性为Form1

2)在主窗体中添加一个TLabelTtreeViewTDriveComboBoxTdirectoryListBox TSaveDialogTButton组件。

3)设置TDirectoryListBox组件的Name属性为DLB1,设置TDriveComboBox组件的Dirlist属性为DLB1

4)程序完整代码如下:

 

感觉有问题
 
//遍历目录下的所有文件
var
    Directotynote, FileNode: TTreeNode;
procedure TForm1.myfind(bNode: TTreeNode;TreeView1:TTreeView);
var
  sr: TsearchRec;
  Err: Integer;
begin
  try
    Err := FindFirst(\'*.*\', $37, sr);
    while (ERR = 0) do
    begin
      if sr.Name[1] <> \'.\' then
      begin
        if (sr.Attr and faDirectory) = 0 then
        begin
          TreeView1.Items.AddChildFirst(bNode, sr.Name);
        end;
        if (sr.Attr and fadirectory) = faDirectory then
        begin
          FileNode := TreeView1.Items.AddChildFirst(bnode, sr.Name);
          chdir(sr.Name);
          Application.ProcessMessages;
          myFind(FileNode,TreeView1);
         // chdir(\'..\');
        end;
      end;
      err := FindNext(sr);
    end;
  except
  end;
end;



procedure TForm1.DLB1Change(Sender: TObject);
begin
  label2.Caption := dlb1.Directory;
  treeview1.Items.Clear;
   myFind(directotynote,TreeView1);
end;

 

 

 





附件列表

     


    鲜花

    握手

    雷人

    路过

    鸡蛋
    该文章已有0人参与评论

    请发表评论

    全部评论

    专题导读
    上一篇:
    批量读取文件matlab发布时间:2022-07-18
    下一篇:
    【MFC】指纹类型识别(OpenCV+MATLAB混合编程)发布时间:2022-07-18
    热门推荐
    阅读排行榜

    扫描微信二维码

    查看手机版网站

    随时了解更新最新资讯

    139-2527-9053

    在线客服(服务时间 9:00~18:00)

    在线QQ客服
    地址:深圳市南山区西丽大学城创智工业园
    电邮:jeky_zhao#qq.com
    移动电话:139-2527-9053

    Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap