简单仿资源管理器(递归)

 

using System;

using System.Collections.Generic;       

using System.ComponentModel;         

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

 

using System.IO;

 

namespace ExplorerDemo

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

 

        private void notifyIcon1_DoubleClick(object sender, EventArgs e)

        {

            this.Show();

        }

 

        private void Form1_Load(object sender, EventArgs e)

        {

            getDrives();

           

        }

 

        /// <summary>

        /// 递规遍历所有文件夹

        /// </summary>

        /// <param name="fatherNode">父节点</param>

        /// <param name="filePath">父路径</param>

        void getFoldersAndFiles(TreeNode fatherNode, string filePath)

        {

            try

            {

                string[] folders = Directory.GetDirectories(filePath);

              

                foreach (string folder in folders)

                {

                    TreeNode temFatherNode = new TreeNode(); //实例化父节点

                    temFatherNode.ImageKey = "folder.ico";

                    temFatherNode.SelectedImageKey =imageList2.Images["folder.ico"].ToString();

                    temFatherNode.Text = folder.Substring(folder.LastIndexOf("//")+1);  //设置父节点的值为当前节点(下次添加的父节点)

                    fatherNode.Nodes.Add(temFatherNode); //添加进去

                    getFoldersAndFiles(temFatherNode,folder);

                }

            }

            catch (Exception ex)

            {

                //MessageBox.Show(ex.ToString());

            }

        }

        /// <summary>

        /// 获得驱动器盘符并添加,并调用递规添加子文件夹

        /// </summary>

        void getDrives()

        {

            string[] drivers = Directory.GetLogicalDrives();

            foreach (string drive in drivers)

            {

                TreeNode tempNode = new TreeNode();

                tempNode.Text = drive; tempNode.ImageKey = "driver.ico";

                tempNode.SelectedImageKey="driver.ico";

                this.treeView1.Nodes.Add(tempNode);

                getFoldersAndFiles(tempNode,drive);

                

            }

        }

 

        private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)

        {//选中节点后显示当前文件夹下的所有文件

            this.listView1.Items.Clear();

            string s = e.Node.FullPath.ToString();

            //MessageBox.Show(s);

            try

            {

                string [] files = Directory.GetFiles(s);

                foreach (string file in files)

                {

                    FileInfo f = new FileInfo(file);

                    //MessageBox.Show(f.Length.ToString());

                    ListViewItem item=new ListViewItem(new string[]{f.Name,f.Length.ToString(),f.LastWriteTime.ToShortDateString()},"file.ico");

                    this.listView1.Items.Add(item);

                   

                }

            }

            catch (Exception ex)

            {

                MessageBox.Show(ex.ToString());

            }

        }

    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值