讓我們來一起寫一個小型資源管理器吧
首先讓我們來搭建窗口
,
然后創建一個信息類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 }
到此就完成了!
需要注意的是,刪除文件是真的徹底刪除,找不回來的!!!