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());
}
}
}
}