文章出處
文章列表
實現的框架如下:
一:讀取目錄下的子目錄信息
通過TreeNode向TreeView中添加根節點,其次綁定子目錄以及獲取目錄下的文件列表,在TreeView雙擊事件中進行調用
//單擊綁定文件和文件夾信息 private void treeList_AfterSelect(object sender, TreeViewEventArgs e) { TreeNode node = this.treeList.SelectedNode; this.BindInfo(node); } public void ShowTree() { TreeNode tn = new TreeNode(); tn.Tag="C:\\"; tn.Text = "C:\\"; treeList.Nodes.Add(tn); TreeNode tn1 = new TreeNode(); tn1.Tag = "D:\\"; tn1.Text = "D:\\"; treeList.Nodes.Add(tn1); TreeNode tn2 = new TreeNode(); tn2.Tag = "E:\\"; tn2.Text = "E:\\"; treeList.Nodes.Add(tn2); } //將目錄綁定到TreeView中 private void BindInfo(TreeNode node) { //綁定子目錄 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); } //獲取目錄下文件列表 FileInfo[] fileInfo = dir.GetFiles(); if (lvList!=null) { lvList.Items.Clear(); } //綁定 foreach (FileInfo item in fileInfo) { ListViewItem list = new ListViewItem(item.Name); list.SubItems.Add((item.Length/1024.0).ToString()); list.SubItems.Add(item.Extension); list.SubItems.Add(item.FullName); lvList.Items.Add(list); } }
二:實現文件復制
①:在右鍵菜單的響應事件中實現文件移動
②:通過“瀏覽文件夾”窗體使用FolderBrowserDialog類
③:文件復制使用File類的Copy()方法
關鍵代碼如下:
//復制 private void tsmCopy_Click(object sender, EventArgs e) { if (this.lvList.SelectedItems.Count == 0) { return; } //提示用戶選擇目標文件夾 FolderBrowserDialog fdb = new FolderBrowserDialog(); DialogResult result = fdb.ShowDialog(); //源文件路徑 string sourcePath = lvList.SelectedItems[0].SubItems[3].Text; //目標文件路徑 string desPath = null; //如果正確選擇目標位置,執行復制操作 if (result == DialogResult.OK) { desPath = fdb.SelectedPath; //lvList表示顯示文件信息的ListView對象 desPath += "\\" + lvList.SelectedItems[0].SubItems[0].Text; //復制文件 File.Copy(sourcePath,desPath); MessageBox.Show("復制成功!"); } }
三:實現文件刪除
//刪除 private void tsmDele_Click(object sender, EventArgs e) { if (this.lvList.SelectedItems.Count == 0) { return; } FileInfo fi = new FileInfo(lvList.SelectedItems[0].SubItems[3].Text); fi.Delete(); if (lvList != null) { TreeNode node = this.treeList.SelectedNode; this.BindInfo(node); } MessageBox.Show("刪除成功!"); }
四:獲取文件路徑 打開文件
private void lvList_DoubleClick(object sender, EventArgs e) { string path = lvList.SelectedItems[0].SubItems[3].Text; Process.Start(path); }
Process代表進程、需引入命名空間:using System.Diagnostics;
文章列表
全站熱搜