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         }

 到此就完成了!

需要注意的是,刪除文件是真的徹底刪除,找不回來的!!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM