我首先建了个C#console application.然后输入以下程序:
#region Using directives
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows .Forms ;
using System.ComponentModel;
using System.Data ;
using System.Drawing ;
using System.IO ;
#endregion
namespace TreeViewDirectorys
{
public class TreeViewDirectoryStructureTest:System .Windows .Forms .Form
{
private System.Windows.Forms.TreeView directoryTreeView;
private System.ComponentModel.Container components = null;
public TreeViewDirectoryStructureTest()
{
directoryTreeView = new TreeView();
directoryTreeView.Location = new System.Drawing.Point(16, 16);
directoryTreeView.Name = "directorytreeview";
directoryTreeView.TabIndex = 0;
this.SuspendLayout();
this.AutoScaleBaseSize = new System.Drawing.Size(3, 8);
this.ClientSize=new System .Drawing .Size(300,300);
this.Controls.AddRange(
new System.Windows.Forms.Control[] {
this.directoryTreeView
});
this.Name = "TreeViewDirectoryStructureTest";
this.Text = "TreeViewDirectoryStructureTest";
this.ResumeLayout(false);
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose(disposing);
/* throw new NotImplementedException();*/
}
static void Main(string[] args)
{
Application.Run(new TreeViewDirectoryStructureTest());
}
public void PopulateTreeView(string directoryValue, TreeNode parentNode)
{
string[] directoryArray = Directory.GetDirectories(directoryValue);
try
{
if (directoryArray.Length != 0)
{
foreach (string directory in directoryArray)
{
TreeNode myNode = new TreeNode(directory);
parentNode.Nodes.Add(myNode);
PopulateTreeView(directory, myNode);
}
}
}
catch (UnauthorizedAccessException)
{
parentNode.Nodes.Add("Access denied");
}
}
private void TreeViewDirectoryStructureTest_Load(
object sender, System.EventArgs e)
{
directoryTreeView.Nodes.Add("c:\\");
PopulateTreeView("c:\\", directoryTreeView.Nodes[0]);
}
}
}
我运行的环境是VS.net2005 beta.