文章出處

實現的框架如下:

 

 

一:讀取目錄下的子目錄信息

通過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;

 


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()