C#加载整个硬盘目录到TreeView
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 加载整个硬盘目录到TreeView
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
// 加载盘符
private void EnumDrives(TreeNode ParentNode)
{
if (ParentNode.Nodes.Count == 0)
{
foreach (string drive in Directory.GetLogicalDrives())
{
treeView1.SelectedNode = ParentNode;
TreeNode TempNode = new TreeNode();
TempNode.Text = drive.Substring(0, drive.Length - 1);
TempNode.Tag = drive;
TempNode.ImageIndex = 1;
TempNode.SelectedImageIndex = 1;
treeView1.SelectedNode.Nodes.Add(TempNode);
treeView1.SelectedNode.Nodes[treeView1.SelectedNode.Nodes.Count - 1].EnsureVisible();
}
}
}
// 递归实现加载目录
private void EnumDirectories(TreeNode ParentNode)
{
treeView1.SelectedNode = ParentNode;
string DirectoryPath = ParentNode.Tag.ToString();
if (ParentNode.Nodes.Count == 0)
{
if (DirectoryPath.Substring(DirectoryPath.Length - 1) != @"")
DirectoryPath += @"";
try
{
foreach (string directory in Directory.GetDirectories(DirectoryPath))
{
TreeNode TempNode = new TreeNode();
TempNode.Text = directory.Substring(directory.LastIndexOf(@"") + 1);
TempNode.Tag = directory;
TempNode.ImageIndex = 3;
TempNode.SelectedImageIndex = 2;
treeView1.SelectedNode.Nodes.Add(TempNode);
treeView1.SelectedNode.Nodes[treeView1.SelectedNode.Nodes.Count - 1].EnsureVisible();
}
}
catch (Exception)
{
}
}
}
//点击目录树时的事件
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
if (e.Node.Text.ToString() != "我的电脑")
EnumDirectories(e.Node);
else
EnumDrives(e.Node);
}
}
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jingang123gz/archive/2007/10/26/1844688.aspx