zoukankan      html  css  js  c++  java
  • 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         }

     到此就完成了!

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

  • 相关阅读:
    分布式系统(五)——容错问题
    分布式系统(四)—— 一致性问题
    分布式系统(三)——选举问题
    分布式系统(二)——互斥问题
    结合中断上下文切换和进程上下文切换分析Linux内核的一般执行过程
    深入理解系统调用
    基于mykernel 2.0编写一个操作系统内核
    微信小程序npm安装pinyin库
    SpringBoot实现下载文件以及前台应当如何对接
    OSX 安装mujoco
  • 原文地址:https://www.cnblogs.com/www-zhazha-com/p/8892100.html
Copyright © 2011-2022 走看看