求请教,如何使用treeView绑定网络硬盘上的文件夹 如题。。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 参考:c# winform项目treeview控件绑定本地电脑磁盘信息,读取文件夹信息,显示文件夹内文件内容 一个TreeView控件,一个ListBox控件。 程序启动,进入main函数时,开始浏览我的电脑中磁盘的信息 public void CpuMessage() { DriveInfo[] dr = DriveInfo.GetDrives(); string driveName = ""; foreach (DriveInfo d in dr) { switch (d.DriveType) { case DriveType.Fixed: driveName = "本地磁盘(" + d.Name.Substring(0,2) + ")"; break; case DriveType.Removable: driveName = "可移动磁盘(" + d.Name.Substring(0, 2) + ")"; break; case DriveType.CDRom: driveName = "DVD驱动器(" + d.Name.Substring(0, 2) + ")"; break; case DriveType.Network: driveName = "网络驱动器(" + d.Name.Substring(0, 2) + ")"; break; default : driveName = "未知(" + d.Name + ")"; break; } this.treeView1.Nodes.Add(d.Name, driveName); } }这时我的电脑的C,D,E,F等等盘的信息就添加的treeview控件的第一个节点中了。由于考虑到用递归法逐层浏览每个节点下文件的信息,所需要的时间太长(因为每个盘的文件夹确实很多,垂直方向上),所以我考虑到用数据点击节点事件。当鼠标点击每个节点时,开始执行寻找这个节点(既文件夹)下的所有一级子文件夹。这个就实现了再用户需要的时候才遍历,提高了性能。 void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) { if (e.Node.Nodes.Count > 0) { if (e.Node.IsExpanded) { e.Node.Collapse(); } else { e.Node.Expand(); } } else { if (Directory.Exists(e.Node.Name)) { try { string[] allDirectory = Directory.GetDirectories(e.Node.Name); foreach (string s in allDirectory) { e.Node.Nodes.Add(s, s.Remove(0, s.LastIndexOf("//") + 1)); } listBox1.Items.Clear(); string[] allFiles = Directory.GetFiles(e.Node.Name); foreach (string sf in allFiles) { listBox1.Items.Add(sf.Remove(0, sf.LastIndexOf("//") + 1)); } } catch { } } e.Node.Expand(); } }并在同时寻找该节点文件夹下的所有文件。添加到右边的ListBox控件中。这样就完成的基本的浏览磁盘数据信息 关于Socket连接失败的问题??? 透明panel滚动条和webbrowser滚动条同步滚动 100分求一个简单正则 取得组件的name c#的方法中动态选择变量是用哪个关键字??? 应该看什么书? Ueditor 从word中复制内容带多张图片。 DropDownList问题!!帮帮忙~~有点郁闷!! 如何判断NetworkStream超时? 一个小问题 将水晶报表中的某一单元格内容回传给C#程序 怎么把图片文件上传到指定的文件夹啊
c# winform项目treeview控件绑定本地电脑磁盘信息,读取文件夹信息,显示文件夹内文件内容
一个TreeView控件,一个ListBox控件。 程序启动,进入main函数时,开始浏览我的电脑中磁盘的信息 public void CpuMessage()
{
DriveInfo[] dr = DriveInfo.GetDrives();
string driveName = "";
foreach (DriveInfo d in dr)
{
switch (d.DriveType)
{
case DriveType.Fixed:
driveName = "本地磁盘(" + d.Name.Substring(0,2) + ")";
break;
case DriveType.Removable:
driveName = "可移动磁盘(" + d.Name.Substring(0, 2) + ")";
break;
case DriveType.CDRom:
driveName = "DVD驱动器(" + d.Name.Substring(0, 2) + ")";
break;
case DriveType.Network:
driveName = "网络驱动器(" + d.Name.Substring(0, 2) + ")";
break;
default :
driveName = "未知(" + d.Name + ")";
break;
}
this.treeView1.Nodes.Add(d.Name, driveName);
}
}这时我的电脑的C,D,E,F等等盘的信息就添加的treeview控件的第一个节点中了。由于考虑到用递归法逐层浏览每个节点下文件的信息,所需要的时间太长(因为每个盘的文件夹确实很多,垂直方向上),所以我考虑到用数据点击节点事件。当鼠标点击每个节点时,开始执行寻找这个节点(既文件夹)下的所有一级子文件夹。这个就实现了再用户需要的时候才遍历,提高了性能。 void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
if (e.Node.Nodes.Count > 0)
{
if (e.Node.IsExpanded)
{
e.Node.Collapse();
}
else
{
e.Node.Expand();
}
}
else
{
if (Directory.Exists(e.Node.Name))
{
try
{
string[] allDirectory = Directory.GetDirectories(e.Node.Name);
foreach (string s in allDirectory)
{
e.Node.Nodes.Add(s, s.Remove(0, s.LastIndexOf("//") + 1));
}
listBox1.Items.Clear();
string[] allFiles = Directory.GetFiles(e.Node.Name);
foreach (string sf in allFiles)
{
listBox1.Items.Add(sf.Remove(0, sf.LastIndexOf("//") + 1));
}
}
catch
{
}
}
e.Node.Expand();
}
}并在同时寻找该节点文件夹下的所有文件。添加到右边的ListBox控件中。这样就完成的基本的浏览磁盘数据信息