很不错我就是看这个学会用TreeView控件的。 新建一个项目在窗体上加一个treeView1和一个listView1。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 WindowsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void ShowFiles(TreeNode MyDirNode) {//在列表视图中显示指定文件夹下的文件 listView1.Clear(); try { foreach (string FileName in Directory.GetFiles((string)MyDirNode.Tag)) { ListViewItem MyItem = new ListViewItem(FileName); listView1.Items.Add(MyItem); } } catch { } } private void ShowDirectories(TreeNode MyDirNode) {//在树视图中显示指定文件夹下的子文件和文件夹 try { if (MyDirNode.Nodes.Count == 0) { if (MyDirNode.Parent == null) { foreach (string MyDriveName in Directory.GetLogicalDrives()) { TreeNode MyNode = new TreeNode(MyDriveName); MyNode.Tag = MyDriveName; MyDirNode.Nodes.Add(MyNode); } } else { foreach (string DirName in Directory.GetDirectories((string)MyDirNode.Tag)) { TreeNode MyNode = new TreeNode(DirName); MyNode.Tag = DirName; MyDirNode.Nodes.Add(MyNode); } } } } catch { } } private void Form1_Load(object sender, EventArgs e) {//搜索系统驱动器 TreeNode MyComputerNode = new TreeNode("我的电脑"); this.treeView1.Nodes.Add(MyComputerNode); this.listView1.View = View.List; } private void treeView1_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e) {// 显示指定文件夹下的文件和文件夹 ShowFiles(e.Node); ShowDirectories(e.Node); } private void treeView1_DoubleClick(object sender, System.EventArgs e) {// 显示选择的文件夹 string MyDir = ""; if (this.treeView1.Focused) { MyDir = this.treeView1.SelectedNode.Text; } MessageBox.Show("当前选择的文件夹是:" + MyDir,"信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } private void listView1_Click(object sender, EventArgs e) {//显示选择的文件 string MyFile = ""; if (this.listView1.Focused) { MyFile = this.listView1.SelectedItems[0].Text; } MessageBox.Show("当前选择的文件是:" + MyFile, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } } }