如何遍历硬盘上的所有文件夹,并加载到treeView中? 就像windows的资源管理器中的treeView一样的?哪位给个参考... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://www.codeproject.com/vb/net/VbNetExpTree.asp 刚好我前段时间写了一个,你先看看吧,应该还有可以改进之处的//获取本地硬盘驱动器 private void loadLogicDiscs() { string[] localDrives = Directory.GetLogicalDrives(); foreach(string eachDrive in localDrives) { TreeNode driveNode = new TreeNode(eachDrive); treeView1.Nodes[0].Nodes.Add(driveNode); addDirectories(driveNode); } }//得到逻辑驱动器下的文件夹//在我的程序中因为已经定义了一个根节点,根节点的名字叫“my computer”,所以我在得到全路径后还写了几句代码来取掉这个“my computer”private void addDirectories(TreeNode tn) { tn.Nodes.Clear(); //清除所有节点 string tnPath = tn.FullPath; //得到当前节点的全路径 int temp = tnPath.IndexOf("\\"); //寻找该全路径中第一个“\”符号,便于处理掉路径中根节点字符 tnPath = tnPath.Remove(0,temp+1); //得到有效路径 DirectoryInfo dirInfo = new DirectoryInfo(tnPath); DirectoryInfo[] arrayDirInfo; try { arrayDirInfo = dirInfo.GetDirectories(); foreach(DirectoryInfo di in arrayDirInfo) { TreeNode tnDir = new TreeNode(di.Name); tn.Nodes.Add(tnDir); } } catch { return; } }//在你的treeView中添加BeforeExpand或AfterExpand事件,使得你每展开一个结点都会出现该结点的所有子节点private void treeView1_BeforeExpand(object sender, System.Windows.Forms.TreeViewCancelEventArgs e) { treeView1.Update(); foreach(TreeNode tn in e.Node.Nodes) { addDirectories(tn); } treeView1.EndUpdate(); } 通过递归可以简单实现。http://blog.csdn.net/zhzuo/archive/2005/03/08/315125.aspx 请问这个控件用什么 gridview导出的问题 在页面1遍历页面2的所有控件 C# Excel问题 自定控件接受不了键盘事件 c#更新问题 Remoting的配置文件放在应用程序目录下,出现找不到文件的异常 有关水晶报表的菜鸟问题 QQ的打包工具是啥? 问个小问题,在一个网页中打开一个非模态的窗口,在点击关闭这个非模态的窗口时,要刷新原窗口 共享大家在.net常用到的win32API列表 如何用C#调用外部文件并且用系统默认的打开方式打开?
//获取本地硬盘驱动器
private void loadLogicDiscs()
{
string[] localDrives = Directory.GetLogicalDrives();
foreach(string eachDrive in localDrives)
{
TreeNode driveNode = new TreeNode(eachDrive);
treeView1.Nodes[0].Nodes.Add(driveNode);
addDirectories(driveNode);
}
}//得到逻辑驱动器下的文件夹
//在我的程序中因为已经定义了一个根节点,根节点的名字叫“my computer”,所以我在得到全路径后还写了几句代码来取掉这个“my computer”
private void addDirectories(TreeNode tn)
{
tn.Nodes.Clear(); //清除所有节点
string tnPath = tn.FullPath; //得到当前节点的全路径
int temp = tnPath.IndexOf("\\"); //寻找该全路径中第一个“\”符号,便于处理掉路径中根节点字符
tnPath = tnPath.Remove(0,temp+1); //得到有效路径
DirectoryInfo dirInfo = new DirectoryInfo(tnPath);
DirectoryInfo[] arrayDirInfo;
try
{
arrayDirInfo = dirInfo.GetDirectories();
foreach(DirectoryInfo di in arrayDirInfo)
{
TreeNode tnDir = new TreeNode(di.Name);
tn.Nodes.Add(tnDir);
}
}
catch
{
return;
}
}//在你的treeView中添加BeforeExpand或AfterExpand事件,使得你每展开一个结点都会出现该结点的所有子节点
private void treeView1_BeforeExpand(object sender, System.Windows.Forms.TreeViewCancelEventArgs e)
{
treeView1.Update();
foreach(TreeNode tn in e.Node.Nodes)
{
addDirectories(tn);
}
treeView1.EndUpdate();
}
http://blog.csdn.net/zhzuo/archive/2005/03/08/315125.aspx