using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace mycomputer
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }        private void Form1_Load(object sender, EventArgs e)
        {
            TreeNode node = this.treeView1.Nodes[0];
            node.Expand();            TreeNode computer = null;
            foreach (TreeNode nd in node.Nodes) 
            {
                if (nd.Name=="computer") 
                {
                    computer = nd;
                }
            }
            //添加我的电脑字节点
            DriveInfo[] drives = DriveInfo.GetDrives();
            foreach (DriveInfo drv in drives)
            {
                TreeNode root = new TreeNode(drv.Name);
                root.ImageKey = "068.GIF";
                root.SelectedImageKey = "068.GIF";
                root.Tag = drv.RootDirectory.FullName;
                computer.Nodes.Add(root);
      
            }        }        private void treeView1_AfterExpand(object sender, TreeViewEventArgs e)
        {            //显示其子文件
            if (e.Action != TreeViewAction.Expand)
            {
                return;
            }
            foreach (TreeNode node in e.Node.Nodes)
            {
                if (node.Tag == null)
                {
                    return;
                }
                DirectoryInfo direct = new DirectoryInfo(node.Tag.ToString());
                DirectoryInfo[] th = null;
                try
                {   
                    th = direct.GetDirectories();
                }
                catch { }
                if (th != null)
                {
                    foreach (DirectoryInfo thi in th)
                    {
                        TreeNode tth = new TreeNode(thi.Name);
                        tth.ImageKey = "003.GIF";
                        tth.SelectedImageKey = "003.GIF";
                        tth.Tag = thi.FullName;
                        node.Nodes.Add(tth);
                    }
                }
            }
        }        private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
            //显示文件路径
            if (e.Action == TreeViewAction.ByKeyboard || e.Action == TreeViewAction.ByMouse)
            {
                if (e.Node.Tag == null)
                {
                    this.Tag = e.Node.Text;
                }
                else
                {
                    this.Text = e.Node.Tag.ToString();
                }
            }
            //显示文件夹到list中
            this.listView1.Items.Clear();
            if (e.Node.Tag != null)
            {
                string folderpath = e.Node.Tag.ToString();
                DirectoryInfo folder = new DirectoryInfo(folderpath);
                DirectoryInfo[] jia = null;
                try
                {
                    jia = folder.GetDirectories();
                }
                catch { }
                if (jia != null)
                {
                    foreach (DirectoryInfo wenjianjia in jia)
                    {
                        listView1.Items.Add(new ListViewItem(new string[] 
                        {
                            wenjianjia.Name,
                            "",
                            wenjianjia.FullName.ToString(),
                            "文件夹", 
                        }, "003.GIF"));
                    }
                }
                //显示文件到list中
                FileInfo[] file = null;
                try
                {
                    file = folder.GetFiles();
                }
                catch (Exception) { }
                if (file != null)
                {
                    foreach (FileInfo files in file)
                    {
                        listView1.Items.Add(new ListViewItem(new string[]
                    {
                        files.Name,
                        GetFileSize(files),
                        files.DirectoryName.ToString(),
                        "文件" 
                    }, "125.GIF"));
                    }
                }
            }
        }
        //获取文件大小
        private string GetFileSize(FileInfo file)
        {
            string lage = "";
            long fileSize = file.Length;
            if (fileSize >= 1024 * 1024 * 1024)
            {
                lage = string.Format("{0:#######0.00}GB", ((double)fileSize / (1024 * 1024 * 1024)));
            }
            else if (fileSize >= 1024 * 1024)
            {
                lage = string.Format("{0:####0.00}MB", ((double)fileSize / (1024 * 1024)));
            }
            else if (fileSize >= 1024)
            {
                lage = string.Format("{0:###0.00}KB", ((double)fileSize / (1024 )));
            }
            else
            {
                lage = string.Format("[0]Byte", fileSize);
            }
            return lage;
        }      
       
        //实现重命名
        private void 重命名ToolStripMenuItem_Click(object sender, EventArgs e)
        {            listView1.LabelEdit = true;
            listView1.SelectedItems[0].BeginEdit();
        }
        // MessageBox.Show(listView1.Items[i].SubItems[2].Text+ @"\" + listView1.Items[i].SubItems[0].Text);
        //判断是文件还是文件夹,在进行删除操作
        public void sc()
        {
            try
            {                DialogResult aa = MessageBox.Show("确定删除", "是否", MessageBoxButtons.YesNo);
                if (aa == DialogResult.Yes)
                {
                    for (int i = 0; i < listView1.Items.Count; i++)
                    {
                        if (listView1.Items[i].Selected)
                        {
                            if (listView1.Items[i].SubItems[3].Text == "文件")
                            {
                                MessageBox.Show(listView1.Items[i].SubItems[0].Text);
                                string name = listView1.Items[i].SubItems[2].Text + @"\" + listView1.Items[i].SubItems[0].Text;
                                if (File.Exists(name))
                                {
                                    File.Delete(name);
                                }
                                else
                                {
                                    DirectoryInfo dd = new DirectoryInfo(name);
                                    dd.Delete();
                                }
                            }
                            else if (listView1.Items[i].SubItems[3].Text == "文件夹") 
                            {
                                string name = listView1.Items[i].SubItems[2].Text;
                                if (File.Exists(name))
                                {
                                    File.Delete(name);
                                }
                                else
                                {
                                    DirectoryInfo dd = new DirectoryInfo(name);
                                    dd.Delete();
                                }
                            }
                            this.listView1.Items.RemoveAt(i);
                        }
                    }
                        
                }                    
    
            }
            catch (Exception ex) { MessageBox.Show(ex.ToString()); }
        }        private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            sc();
        }        private void 复制ToolStripMenuItem_Click(object sender, EventArgs e)
        {
           
        }        private void 粘贴ToolStripMenuItem_Click(object sender, EventArgs e)
        {
          
        }        
    }
}