C#资源管理器

窗体搭建:ContextMenuStrip右键菜单,Treeview树形菜单,Listview控件

新建"我的文件"类:

public class MyFile
    {
        public float FileLength { get; set; }//文件长度(KB)
        public string FileName { get; set; }//文件名
        public string FilePath { get; set; }//文件路径
        public string FileType { get; set; }//文件类型
    }

主窗体全部代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void tvExplore_AfterSelect(object sender, TreeViewEventArgs e)
        {
            TreeNode node = this.tvExplore.SelectedNode;
            this.BindInfo(node);
        }
        //将目录绑定到Treeview中
        private void BindInfo(TreeNode node)
        {
            //清空
            lvInfo.Items.Clear();
            //绑定子目录
            DirectoryInfo dir = new DirectoryInfo(node.Tag.ToString());
            DirectoryInfo[] dirs = dir.GetDirectories();
            foreach (DirectoryInfo di in dirs)
            {
                TreeNode temp = new TreeNode();
                temp.Text = di.Name;
                temp.Tag = di.FullName;
                node.Nodes.Add(temp);
            }
            //获取目录下文件列表,dir是目录对象
            FileInfo [] fi = dir.GetFiles();
            //定义反省集合存储文件信息
            List<MyFile> files = new List<MyFile>();
            //遍历文件列表
            foreach (FileInfo myFile in fi)
            {
                MyFile mf = new MyFile();
                mf.FileName = myFile.Name;
                mf.FileLength = myFile.Length;
                mf.FileType = myFile.Extension;
                mf.FilePath = myFile.FullName;
                files.Add(mf);
            }
            //绑定到Listview中
            foreach (MyFile em in files)
            {
                ListViewItem lv = new ListViewItem(em.FileName);
                lv.SubItems.Add(em.FileLength.ToString());
                lv.SubItems.Add(em.FileType);
                lv.SubItems.Add(em.FilePath);
                lvInfo.Items.Add(lv);
            }
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            //检索计算机上的所有逻辑驱动器的驱动器名称
            DriveInfo[] di = DriveInfo.GetDrives();
            foreach (DriveInfo item in di)
            {
                TreeNode tn = new TreeNode(item.Name);
                tn.Tag = item.Name;
                tvExplore.Nodes.Add(tn);
            }
        }
        private void 复制文件ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //判断是否选中,没选中return
            if (lvInfo.SelectedItems.Count == 0)
            {
                MessageBox.Show("请选中一个文件");
                return;
            }
            //提示用户选择目标文件夹
            FolderBrowserDialog fbd = new FolderBrowserDialog();
            DialogResult result = fbd.ShowDialog();
            //源文件路径
            string sourcepath = lvInfo.SelectedItems[0].SubItems[3].Text;
            //目标文件路径
            string despath = null;
            //如果正确选择目标位置,执行复制操作
            if (result == DialogResult.OK)
            {
                despath = fbd.SelectedPath;
                //lvlist表示显示文件信息的ListView对象
                despath += "\\" + lvInfo.SelectedItems[0].SubItems[0].Text;
                //复制文件
                try
                {
                    File.Copy(sourcepath, despath);
                    MessageBox.Show("复制成功!");
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                
            }
        }
        private void 删除文件ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            string delectpath = lvInfo.SelectedItems[0].SubItems[3].Text;
            try
            {
                File.Delete(delectpath);
                MessageBox.Show("删除成功!");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            
        }
    }
}
posted @ 2017-10-23 14:29  一念〃  阅读(3180)  评论(0编辑  收藏  举报