C#TreeView遍历文件

C#TreeView遍历文件_第1张图片C#TreeView遍历文件_第2张图片

设置TreeView:

ImageList属性:添加一个imageList控件,如上图往imageList中添加一些图标

下面是加载节点代码: 引用"IO"命名空间

using System.IO;

 

///  加载系统盘目录 
public void LoadTvDirectory()
{
DriveInfo[] di = DriveInfo.GetDrives();
foreach (DriveInfo driver in di)
{
TreeNode tnode = new TreeNode(driver.Name);

if (driver.IsReady)
{
tnode.Tag = driver;
tnode.ToolTipText = driver.TotalSize.ToString();
this.treeView1.Nodes.Add(tnode); //为TreeView 控件添加节点
LoadDirectory(Path.GetFullPath(tnode.Text), tnode);
}
}
}

///  加载指定目录中的项(文件夹) 
/// 参数1(path):目录路径名称
/// 参数2(tNode):选定的节点
///  
/// 目录路径
/// 选定的节点
public void LoadDirectory(string path, TreeNode tNode)
{
try
{

string[] directorys = Directory.GetDirectories(path); //获取选中treeview节点的子目录

foreach (string item in directorys)
{
if ((File.GetAttributes(item) & FileAttributes.Hidden) != FileAttributes.Hidden)
{
TreeNode tnode = new TreeNode(Path.GetFileName(item));
tnode.Name = item;
tnode.ToolTipText = "文件夹: " + item;

/* 未选定节点目录图标 索引 */
tnode.ImageIndex = 0;

/* 选定节点目录显示图标 索引 */
tnode.SelectedImageIndex = 1;
tNode.Nodes.Add(tnode); //选中节点添加子节点
}
}
if (path.Contains("System Volume Information"))
{
return;
}
string[] files = Directory.GetFiles(path); //获取目录中的文件名称
foreach (string item in files)
{
string eName = Path.GetExtension(item);
if (eName == ".txt" && (File.GetAttributes(item) & FileAttributes.Hidden) != FileAttributes.Hidden)
{
TreeNode tnodes = new TreeNode(Path.GetFileNameWithoutExtension(item));
tnodes.Name = item;
tnodes.ToolTipText = "文件名: " + item;

/* 未选定文件显示图标 索引 */
tnodes.ImageIndex = 2;

/* 选定文件显示图标 索引 */
tnodes.SelectedImageIndex = 3;
tNode.Nodes.Add(tnodes);
}
}

}
catch (Exception ex) { MessageBox.Show(ex.ToString()); }
}
自定义加载方法 Code
/* 窗体加载,TreeViews 为窗体名 */

private void TreeViews_Load(object sender, EventArgs e)
{
LoadTvDirectory();  //加载驱动盘符
}
加载磁盘 Code
/* 节点展开后发生事件 */
private void treeView1_AfterExpand(object sender, TreeViewEventArgs e)
{
foreach (TreeNode tnode in e.Node.Nodes)
{
tnode.Nodes.Clear();

/* 下面这句很重要,请注释看一下效果 */
if (!Path.HasExtension(tnode.Name))
LoadDirectory(tnode.Name, tnode);
}
}
展开节点 Code
        private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
            string FileName = e.Node.FullPath + ".txt";
            if (File.Exists(FileName))
            {
              RichTextBox.LoadFind(FileName, RichTextBoxStreamType.PlainText);
            }
        }
加载文档内容 Code

 "加载文档内容"中的 - (下面这句是自定义委托事件-_-!)

RichTextBox1.LoadFind(FileName, RichTextBoxStreamType.PlainText);

改为

RichTextBox1.LoadFile(FileName, RichTextBoxStreamType.PlainText);

 如果想用ListView显示文档的话

        //加载指定目录下的文本文档
        /// 
        /// 加载指定目录下的文本文件
        /// 
        /// 包含路径的文件名称
        public void LoadLvFile(string path)
        {
            try
            {
                if (path.Contains("System Volume Information"))
                {
                    return;
                }
                string[] files = Directory.GetFiles(path);
                this.listViews.Clear();
                foreach (string item in files)
                {
                    string eName = Path.GetExtension(item);
                    if (eName == ".txt") //在listview里面显示文本文件
                    {
                        this.listViews.Items.Add(item);
                    }
                }
                this.listViews.View = View.SmallIcon; //设置listview的显示形式
            }
            catch (Exception ex) { MessageBox.Show(ex.ToString()); }
        }
ListView显示 Code

 

转载于:https://www.cnblogs.com/chinaOuMxdr/p/3684416.html

你可能感兴趣的:(C#TreeView遍历文件)