delphi TTreeView组件遍历磁盘目录
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)在主窗体中添加一个TLabel、TtreeView、TDriveComboBox、TdirectoryListBox 、TSaveDialog和TButton组件。
(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;
附件列表
delphi TTreeView组件遍历磁盘目录的更多相关文章
- 用TreeView控件遍历磁盘目录
实现效果: 知识运用: ListView控件中Items集合的Add方法 TteeView控件中Nodes集合的Add方法 实现代码: private void Form1_Load(object ...
- delphi遍历指定目录下指定类型文件的函数
遍历指定目录下指定类型文件的函数// ================================================================// 遍历某个文件夹下某种文件,/ ...
- Delphi的组件读写机制
Delphi的组件读写机制(一) 一.流式对象(Stream)和读写对象(Filer)的介绍在面向对象程序设计中,对象式数据管理占有很重要的地位.在Delphi中,对对象式数据管理的支持方式是其一大特 ...
- C#.NET中遍历指定目录下的文件(及所有子目录及子目录里更深层目录里的文件)
//遍历一个目录下所有的文件列表,代码实例 DirectoryInfo dir = new DirectoryInfo(folderName);var list = GetAll(dir); /// ...
- Java遍历一个目录下的所有文件
Java遍历一个目录下的所有文件 Java工具中为我们提供了一个用于管理文件系统的类,这个类就是File类,File类与其他流类不同的是,流类关心的是文件的内容,而File类关心的是磁盘上文件的存 ...
- 【目录】Newlife XCode组件相关文章目录
本博客所有文章分类的总目录链接:本博客博文总目录-实时更新 1.Newlife XCode组件相关文章目录 1.Newlife XCode组件资源目录汇总[2013年版] 2.Newlife ...
- [WinAPI] API 13 [遍历指定目录 打印文件和其他属性]
Windows API中,有一组专门的函数和结构,用于遍历目录,它们是FindFirstFile函数.FindNextFile函数和WIN32_FIND_DATA结构.使用FindFirstFile和 ...
- python遍历一个目录,输出所有文件名
python遍历一个目录,输出所有文件名 python os模块 os import os def GetFileList(dir, fileList): newDir = dir if os. ...
- Python:遍历一个目录下所有的文件及文件夹,然后计算每个文件的字符和line的小程序
编写了一个遍历一个目录下所有的文件及文件夹,然后计算每个文件的字符和line的小程序,先把程序贴出来. #coding=utf-8 ''' Created on 2014年7月14日 @author: ...
随机推荐
- [Everyday Mathematics]20150108
设 $f$ 在 $(a,b)$ 上 $n+1$ 次可导, 且 $$\bex \ln\frac{f(b)+f'(b)+\cdots+f^{(n)}(b)}{f(a)+f'(a)+\cdots+f^{(n ...
- Android中GridView滚动到底部加载数据终极版
之前在项目中有一个需求是需要GridView控件,滚动到底部自动加载.但是呢GridView控件并不提供诸如ListView监听滚动到底部的onScrollListener方法,为了实现这样一个效果, ...
- asp调用.net xml web services
来源:http://www.cnblogs.com/notus/archive/2006/08/10/473000.html#2662503 (是不是实际上可以用这个办法调用任何xml web ser ...
- CSS框模型(框模型概述、内边距、边框、外边距、外边距合并)
CSS 框模型概述 CSS 框模型 (Box Model) 规定了元素框处理元素内容.内边距.边框 和 外边距 的方式. 元素框的最内部分是实际的内容,直接包围内容的是内边距.内边距呈现了元素的背景. ...
- ArcMap10.1无法保存编辑的内容
问题描述:在arcMap10.1中编辑SDE库中要素,保存编辑内容时报错: 无法保存编辑内容.基础DBMS错误[ORA-29877:failed in the execution of the ODC ...
- 为Hadoop配置Win8.1授时服务器
启动Windows服务,顺序如下: SSTPS(secure socket tunneling protocol service)服务 Telephony服务 Remote Access Connec ...
- H264编码参数的一些小细节
一次写播放器,基于ijkplayer.在播放一些网络视频的时候,发现无论怎么转码,视频比例始终不对.即便获取了分辨率,但是播放的时候,view不是分辨率比例的那个长宽比.使用ffmpeg查看了一下属性 ...
- TreeMap实现原理
摘要 研究项目底层代码时,发现项目中的数据的缓存用的是TreeMap来实现对数据的缓存管理.本片博文就TreeMap的源码.原理以及用法做一个探究 在用TreeMap之前我们要对TreeMap有个整体 ...
- eclipse svn切换账号登陆问题
1.当一个人有权限访问文件代码,而另一个账号无法访问该文件代码,要在eclipse上切换账号登陆有权限的账号时,eclipse会用缓存的账号,不会弹出从新输入新账号的窗口. 这样该怎么解决呢? 关闭e ...
- 【JDBC】事务的使用
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/5868750.html 关于事务的理论知识.ACID特性等等,网上太多了,在此不一一重复.本文主要着重 事务 ...