C#TreeView遍历文件

设置TreeView:

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

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

using System.IO;

 

/// <summary> 加载系统盘目录 </summary>
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);
}
}
}

/// <summary> 加载指定目录中的项(文件夹)<para> <para>
/// 参数1(path):目录路径名称<para>
/// 参数2(tNode):选定的节点</para>
/// </para></para> </summary>
/// <param name="path">目录路径</param>
/// <param name="tNode">选定的节点</param>
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显示文档的话

        //加载指定目录下的文本文档
        /// <summary>
        /// 加载指定目录下的文本文件
        /// </summary>
        /// <param name="path">包含路径的文件名称</param>
        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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值