我的天空(I Like the feeling)

导航

一个超简单的文件浏览器源码.

using System;
using System.IO;
using System.Windows.Forms;
namespace WindowsApplication1
{
    public partial class Form1 : Form
    {
        string ParentPath = "..";
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            foreach (string MachineDriver in Environment.GetLogicalDrives())
                driver.Items.Add(MachineDriver.ToString());
            if (driver.Items.Count > 0)
                driver.SelectedIndex = 0;
        }

        private void ChangeDirectory(DirectoryInfo CurrentDirectory)
        {
            directory.Items.Clear();
            file.Items.Clear();
            directory.Items.Add((object)ParentPath);
            path.Text = CurrentDirectory.FullName;
            path.Text = path.Text.EndsWith("\\") ? path.Text : string.Concat(path.Text, "\\");
            try
            {
                foreach (DirectoryInfo DirectoryName in CurrentDirectory.GetDirectories())
                {
                    directory.Items.Add((object)DirectoryName.Name);
                }
                foreach (FileInfo FileName in CurrentDirectory.GetFiles())
                {
                    file.Items.Add((object)FileName.Name);
                }
            }
            catch (IOException e)
            {
                MessageBox.Show(e.Message);
            }

        }

        private void directory_DoubleClick(object sender, EventArgs e)
        {
            if (directory.SelectedIndex == 0 && !string.Equals(new DirectoryInfo(path.Text).Root.Name,path.Text))
            {
                ChangeDirectory(new DirectoryInfo(path.Text).Parent);
                return;
            }

            if (directory.Items.Count !=1)
            {
                string CurrentPath = path.Text + directory.Items[directory.SelectedIndex].ToString();
                ChangeDirectory(new DirectoryInfo(CurrentPath));
            }
        }

        private void driver_SelectedIndexChanged(object sender, EventArgs e)
        {
            ChangeDirectory(new DirectoryInfo(driver.Items[driver.SelectedIndex].ToString()));
        }
    }
}

posted on 2008-02-23 22:03  TBLANK  阅读(342)  评论(0编辑  收藏  举报