(深入.Net平台和C#编程)第九章.上机练习.20170417

==============================================entity==============================================

-------------------------------------------MyFile类-------------------------------------------

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace ResourceManage.entity
 8 {
 9     /// <summary>
10     /// 文件类
11     /// </summary>
12    public class MyFile
13     {
14        /// <summary>
15        /// 文件名
16        /// </summary>
17        public string FileName { get; set; }
18        /// <summary>
19        /// 文件大小
20        /// </summary>
21        public long FileLength { get; set; }
22        /// <summary>
23        /// 文件类型
24        /// </summary>
25        public string FileType { get; set; }
26        /// <summary>
27        /// 文件路径
28        /// </summary>
29        public string FilePath { get; set; }
30     }
31 }
MyFile

 

==============================================窗体==============================================

-------------------------------------------frmMain类-------------------------------------------

  1 using ResourceManage.entity;
  2 using System;
  3 using System.Collections.Generic;
  4 using System.ComponentModel;
  5 using System.Data;
  6 using System.Drawing;
  7 using System.IO;
  8 using System.Linq;
  9 using System.Text;
 10 using System.Threading.Tasks;
 11 using System.Windows.Forms;
 12 
 13 namespace ResourceManage
 14 {
 15     public partial class frmMain : Form
 16     {
 17         public frmMain()
 18         {
 19             InitializeComponent();
 20         }
 21 
 22         private void frmMain_Load(object sender, EventArgs e)
 23         {
 24             Init();
 25             
 26         }
 27 
 28         /// <summary>
 29         /// 初始化
 30         /// </summary>
 31         public void Init()
 32         {
 33             //添加三个根节点
 34             tvList.Nodes.Add(@"C:\");
 35             tvList.Nodes.Add(@"D:\");
 36             tvList.Nodes.Add(@"E:\");
 37             for (int i = 0; i < tvList.Nodes.Count; i++)
 38             {
 39                 tvList.Nodes[i].Tag = tvList.Nodes[i].Text;
 40             }
 41             try
 42             {
 43                 //遍历所有树节点(相当于盘)
 44                 for (int i = 0; i < tvList.Nodes.Count; i++)
 45                 {
 46                     DirectoryInfo di = new DirectoryInfo(tvList.Nodes[i].Text);
 47                     //返回当前目录的子目录
 48                     DirectoryInfo[] sonDi = di.GetDirectories();
 49                     foreach (DirectoryInfo item in sonDi)
 50                     {
 51                         //创建节点对象
 52                         TreeNode tn = new TreeNode();
 53                         //给节点赋属性
 54                         tn.Text = item.Name;
 55                         tn.Tag = item.FullName;
 56                         //树节点添加子节点
 57                         tvList.Nodes[i].Nodes.Add(tn);
 58 
 59                     }
 60                 }
 61 
 62                 //foreach (TreeNode item in tvList.Nodes)
 63                 //{
 64                 //    for (int i = 0; i < item.Nodes.Count; i++)
 65                 //    {
 66                         
 67                 //    }
 68                 //}
 69             }
 70             catch (Exception ex)
 71             {
 72             }
 73         }
 74 
 75         /// <summary>
 76         /// 绑定XX文件夹下的所有文件信息
 77         /// </summary>
 78         public void BangSonNodes()
 79         {
 80             try
 81             {
 82 
 83                 DirectoryInfo di = new DirectoryInfo(tvList.SelectedNode.Tag.ToString());
 84                 //获取选中文件夹下文件
 85                 FileInfo[] fis = di.GetFiles();
 86                 List<MyFile> files = new List<MyFile>();
 87                 foreach (FileInfo file in fis)
 88                 {
 89                     MyFile mf = new MyFile();
 90                     mf.FileName = file.Name;
 91                     mf.FilePath = file.FullName;
 92                     mf.FileType = file.Extension;
 93                     mf.FileLength = file.Length;
 94                     files.Add(mf);
 95                 }
 96                 lvList.Items.Clear();
 97 
 98                 foreach (MyFile item in files)
 99                 {
100                     ListViewItem lvi = new ListViewItem(item.FileName);
101                     lvi.SubItems.Add(item.FileLength.ToString());
102                     lvi.SubItems.Add(item.FileType);
103                     lvi.SubItems.Add(item.FilePath);
104                     lvList.Items.Add(lvi);
105                 }
106             }
107             catch (Exception ex)
108             {
109                 MessageBox.Show(ex.Message);
110             }
111         }
112 
113         private void tvList_AfterSelect(object sender, TreeViewEventArgs e)
114         {
115             BangSonNodes();
116         }
117 
118         private void tvList_AfterExpand(object sender, TreeViewEventArgs e)
119         {
120             foreach (TreeNode node in tvList.SelectedNode.Nodes)
121             {
122                 
123             }
124         }
125 
126         /// <summary>
127         /// 右键删除
128         /// </summary>
129         /// <param name="sender"></param>
130         /// <param name="e"></param>
131         private void tsmiDelete_Click(object sender, EventArgs e)
132         {
133             string oName = lvList.SelectedItems[0].Text;
134             string path = lvList.SelectedItems[0].SubItems[3].Text;
135             int index = oName.IndexOf(".");
136             string nName = oName.Substring(0, index);
137             DialogResult result = MessageBox.Show("是否删除" + nName, "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
138             if (result == DialogResult.Yes)
139             {
140                 File.Delete(path);
141                 MessageBox.Show("删除成功");
142                 BangSonNodes();
143             }
144         }
145 
146         /// <summary>
147         /// 右键复制
148         /// </summary>
149         /// <param name="sender"></param>
150         /// <param name="e"></param>
151         private void tsmiCopy_Click(object sender, EventArgs e)
152         {
153             FolderBrowserDialog fbd = new FolderBrowserDialog();
154             DialogResult result = fbd.ShowDialog();
155             string sourcePath = lvList.SelectedItems[0].SubItems[3].Text;
156             string desPath = null;
157             if (result == DialogResult.OK)
158             {
159                 desPath = fbd.SelectedPath;
160                 desPath += "/" + lvList.SelectedItems[0].SubItems[0].Text;
161                 File.Copy(sourcePath, desPath);
162                 MessageBox.Show("复制成功");
163             }
164         }
165     }
166 }
frmMain

 

posted @ 2017-04-18 00:39  汉阳锅锅  阅读(1668)  评论(1编辑  收藏  举报