C#小型资源管理器

让我们来一起写一个小型资源管理器吧

首先让我们来搭建窗口

然后创建一个信息类Files

1  public class Files
2     {
3        public float FileLength { get; set; }//长度
4        public string FileName{ get; set; }//文件名
5        public string FilePath { get; set; }//路径
6        public string FileType { get; set; }//类型
7   
8     }

接下来写到当你点击左侧目录时,动态加载信息目录

效果如上图

 1  private void tv1_AfterSelect(object sender, TreeViewEventArgs e)
 2         {
 3             listView1.Items.Clear();//清除内容
 4             TreeNode node = this.tv1.SelectedNode;//获取选中节点
 5             this.BindINfo(node);//调用获取方法
 6 
 7             DirectoryInfo dic = new DirectoryInfo(node.Tag.ToString());//获取目录对象
 8            
 9             FileInfo[] foInfos = dic.GetFiles();//获取目录文件的集合
10             List<Files> list = new List<Files>();//保存信息表
11             foreach (FileInfo file in foInfos)//循环将其遍历,赋值到list集合中
12             {
13                 Files fl = new Files();
14                 fl.FileName = file.Name;
15                 float a = file.Length;
16                 fl.FileLength = float.Parse(Math.Round(a/1024,2).ToString());//将内存转换为KB
17                 fl.FileType = file.Extension;
18                 fl.FilePath = file.FullName;
19                 list.Add(fl);
20          
21             }
22             foreach (Files em in list)//循环将list内的信息绑定到listview
23             {
24                 ListViewItem item = new ListViewItem(em.FileName);
25                 item.SubItems.Add(em.FileLength.ToString());
26                 item.SubItems.Add(em.FileType);
27                 item.SubItems.Add(em.FilePath);
28                 listView1.Items.Add(item);
29             }
30         }
31 
32         private void BindINfo(TreeNode node)
33         {
34            DirectoryInfo dic=new DirectoryInfo(node.Tag.ToString());
35             DirectoryInfo[] dirs = dic.GetDirectories();
36             foreach (DirectoryInfo item in dirs)//循环获取当前目录的子目录
37             {
38                 TreeNode temp=new TreeNode();
39                 temp.Text = item.Name;
40                 temp.Tag = item.FullName;//详细地址
41                 node.Nodes.Add(temp);
42             }
43            
44         }

然后是编写右键快捷菜单

复制文件时,选择文件

 1 private void 复制ToolStripMenuItem_Click(object sender, EventArgs e)
 2         {
 3             if (listView1.SelectedItems.Count==0)//数量为零时,重新执行
 4             {
 5                 return;
 6             }
 7             FolderBrowserDialog fdb = new FolderBrowserDialog();//打开选择器
 8             DialogResult result = fdb.ShowDialog();
 9             string yuanPath = listView1.SelectedItems[0].SubItems[3].Text;//原地址
10             string newPath = null;
11             if (result==DialogResult.OK)
12             {
13                 newPath = fdb.SelectedPath;
14                 newPath += "\" + listView1.SelectedItems[0].SubItems[0].Text;//给新地址赋值
15                 File.Copy(yuanPath,newPath);//执行复制
16                 MessageBox.Show("复制成功");
17             }
18         }

删除文件

 

 1  private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
 2         {
 3             if (listView1.SelectedItems.Count == 0)//数量为零时,重新执行
 4             {
 5                 return;
 6             }
 7             string yuanPath = listView1.SelectedItems[0].SubItems[3].Text;//地址
 8             DialogResult result = MessageBox.Show("确定要删除吗", "提示", MessageBoxButtons.YesNo);
 9             if (result==DialogResult.Yes)//点击确定时,执行删除
10             {
11                 File.Delete(yuanPath);
12             }
13             listView1.SelectedItems[0].Remove();//移除该项
14         }

 到此就完成了!

需要注意的是,删除文件是真的彻底删除,找不回来的!!!

原文地址:https://www.cnblogs.com/www-zhazha-com/p/8892100.html