Winfom学习-实现简单资源管理器

最近在学习C#相关知识,实现一个简单的资料管理器的功能,功能很简单。里面利用了递归的读取方式。

1.首先我们先对页面进行简单设计 我就用了两个控件 一个是TreeView 另一个是TextBox,如下图所示:

2.界面很简单,下面就是对功能进行编写

  private void Form1_Load(object sender, EventArgs e)
        {
            //当首次加载的时候我们需要读取相应的文件夹地址 
            string path = @"C:\Users\YIXICHEN\Desktop"; 
            //初始化加载
            GetDirectoryAndFile(path, treeView1.Nodes);

        }
        /// <summary>
        /// 这个是读取文件夹和对应文件的递归方法
        /// </summary>
        /// <param name="path">路径</param>
        /// <param name="tc">TreeView的节点</param>
        private void GetDirectoryAndFile(string path,TreeNodeCollection tc) { 
        //获得文件夹的全路径
            string[] dicPath = Directory.GetDirectories(path);
            for (int i = 0; i < dicPath.Length; i++)
            {
                //去路径获得文件夹的名称
                string dicName = Path.GetFileNameWithoutExtension(dicPath[i]);
                //将获取的文件夹添加到对应的子节点下
                TreeNode tn = tc.Add(dicName);
                //递归进行节点添加
                GetDirectoryAndFile(dicPath[i],tn.Nodes);

            }

        }

这个时候我们就完成了,对文件的加载,我们可以读取到对应目录下的文件,我们要做的功能室读取文件和文件夹,所以我们还要对文件进行操作。

   private void GetDirectoryAndFile(string path,TreeNodeCollection tc) { 
        //获得文件夹的全路径
            string[] dicPath = Directory.GetDirectories(path);
            for (int i = 0; i < dicPath.Length; i++)
            {
                //去路径获得文件夹的名称
                string dicName = Path.GetFileNameWithoutExtension(dicPath[i]);
                //将获取的文件夹添加到对应的子节点下
                TreeNode tn = tc.Add(dicName);
                //递归进行节点添加
                GetDirectoryAndFile(dicPath[i],tn.Nodes);
            }
            //获取对应文件夹下得文件路径+名称
            string[] filePath = Directory.GetFiles(path);
            for (int i = 0; i < filePath.Length; i++)
            {
                //获取文件名称
                string fileName = Path.GetFileNameWithoutExtension(filePath[i]);
                //将文件添加到对应的节点下
                TreeNode tn= tc.Add(fileName);
                //利用控件的Tag属性进行地址存值
                tn.Tag = filePath[i].ToString();
            }

        }

这个时候我们对文件的加载已经完成了左侧TreeView的部分已经完成,我们放置TextBox的目的是为了,将txt文档的内容加载在右侧,触发TreeView的DoubleClick事件 。

  private void treeView1_DoubleClick(object sender, EventArgs e)
        {
            //获取选中的文件地址
           string filePath=  treeView1.SelectedNode.Tag.ToString();
            //读取并显示文件内容
           textBox1.Text = File.ReadAllText(filePath,Encoding.Default);
        }

这个时候如果右侧读取文件的时候出现乱码的形式 说明你的Encoding转码格式不对,选择一个正确的转码就行了。

 好了,一个简单的资源管理器功能就实现了,如果有问题 希望各位大佬指出。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值