• 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         }

     到此就完成了!

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

  • 相关阅读:
    Jquery fancybox 可以实现在当前页面弹出框
    http下载
    使用Fat 直接运行Java中自定义的main方法
    Tomcat 中配置直接请求(不带项目名请求)
    java 解压
    文件压缩到zip
    导出excel 头部文件
    NPOI 动态添加行
    ICSharpCode.SharpZipLib.Zip.ZipException: EOF in header
    elasticsearch配置
  • 原文地址:https://www.cnblogs.com/www-zhazha-com/p/8892100.html
Copyright © 2020-2023  润新知