编写资源管理器

使用到的类及方法: 1、TreeNode    2 、Path.GetFileNameWithoutExtension()  3、DirectoryInfo    4、 FileInfo

实现了给一个路径,得到改路径下的所有文件夹及文件树(问题:★★中的问题如何解决?)

 1   private void Form1_Load(object sender, EventArgs e)
 2         {
 3             CreateParent("E:\\Downloads666");
 4            
 5             
 6         }
 7         //创建父节点方法(只要给一个路径就可以把该路径下的所有文件转换为节点)
 8       void CreateParent(string path)
 9         {
10           //实例化父节点
11             TreeNode parent = new TreeNode();
12             //使用Path.GetFileNameWithoutExtension()方法得到父节点的文件名
13             parent.Text= Path.GetFileNameWithoutExtension(path);
14           //把父节点添加到树中
15             tvType.Nodes.Add(parent);
16           //把子节点添加到父节点中
17             CreateChild(path, parent);
18         }
19         //给出路径及父节点,把所有子节点添加进父节点中
20       void CreateChild(string path, TreeNode parent)
21       {
22           //实例化DirectoryInfo
23           DirectoryInfo di = new DirectoryInfo(path);
24           //使用GetDirectories方法得到当前路径的所有子目录
25           DirectoryInfo[] dirs= di.GetDirectories();
26           foreach (DirectoryInfo item in dirs)
27           {
28               TreeNode child = new TreeNode();
29               child.Text = item.Name;
30               child.Tag = item.FullName;
31               parent.Nodes.Add(child);
32               //把所有文件添加进去
33               CreateFile(child.Tag.ToString(), child);
34               //添加文件节点
35               //child.Nodes.
36               //★★★问题★★★。
37               //在遍历的时候自己调用自己,循环得到所有目录下的多级子目录,但这样的方法好不好?? 没人给我解答,我自学,你妹的哈哈!!
38               //能不能在单击节点的时候调用方法,得到该节点的下一级的目录及文件?是不是这样要速度快很多
39               CreateChild(child.Tag.ToString(), child);
40           }
41       }
42         //给出路径及父节点,把所有文件添加进节点中
43       void CreateFile(string path, TreeNode parent)
44       {
45           DirectoryInfo di = new DirectoryInfo(path);
46           FileInfo[] files= di.GetFiles();
47           foreach (FileInfo item in files)
48           {
49               TreeNode wj = new TreeNode();
50               wj.Text = item.Name;
51               wj.Tag = item.FullName;
52               parent.Nodes.Add(wj);
53           }
54       }
依据路径生成文件树

 增加下面代码,可以点击文件节点的时候获取改文件的内容,并显示到txt2中

 1  private void tvType_AfterSelect(object sender, TreeViewEventArgs e)
 2       {
 3           if (e.Node.Tag == null)
 4           {
 5               return;
 6           }
 7           string path=e.Node.Tag.ToString();
 8           if (path.Contains(".txt"))
 9           {
10               textBox1.Text = e.Node.Text;
11               textBox2.Text = File.ReadAllText(path, Encoding.GetEncoding("gb2312"));
12           }
13       }
显示TXT文件内容代码

 

资源管理器,还可以编辑TXT中的内容和编辑标题等。(代码后面加上,别偷懒)\(^o^)/

 

★在读取内容相当大的txt文件的时候会卡,如何解决?★

  有个声音弱弱的回答:使用流类啊(Stream)---先睡觉了,明天再来!。。

posted on 2013-05-22 22:38  星星daddy  阅读(692)  评论(0编辑  收藏  举报