using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Management;namespace test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//treeView1.Nodes.Coler
/// <summary>
/// Form1 的摘要说明。
/// </summary>
public class Form : System.Windows.Forms.Form
{
private System.Windows.Forms.TreeView treeView1;
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.Container components = null; public Form()
{
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent(); //
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
} /// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose(bool disposing)
{
if (disposing)
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose(disposing);
} #region Windows 窗体设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.treeView1 = new System.Windows.Forms.TreeView();
this.SuspendLayout();
//
// treeView1
//
this.treeView1.ImageIndex = -1;
this.treeView1.Location = new System.Drawing.Point(8, 16);
this.treeView1.Name = "treeView1";
this.treeView1.SelectedImageIndex = -1;
this.treeView1.Size = new System.Drawing.Size(272, 232);
this.treeView1.TabIndex = 0;
this.treeView1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.treeView1_MouseDown);
this.treeView1.DoubleClick += new System.EventHandler(this.treeView1_DoubleClick);
this.treeView1.BeforeExpand += new System.Windows.Forms.TreeViewCancelEventHandler(this.treeView1_BeforeExpand);
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(292, 273);
this.Controls.Add(this.treeView1);
this.Name = "Form1";
this.Text = "Form1";
this.Load += new System.EventHandler(this.Form1_Load);
this.ResumeLayout(false); }
#endregion /// <summary>
/// 应用程序的主入口点。
/// </summary>
private LoadDir loadDir;
string filter = "";
private void Form1_Load(object sender, System.EventArgs e)
{
loadDir = LoadDir.CreateIntance();
treeView1.Nodes.Add(loadDir.Drives());
} private void treeView1_DoubleClick(object sender, System.EventArgs e)
{
if (treeView1.SelectedNode == null || treeView1.SelectedNode.Parent == null)//跟目录
return;
try
{
loadDir.ChildChildNodes(treeView1.SelectedNode, filter, true);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
} private void treeView1_BeforeExpand(object sender, System.Windows.Forms.TreeViewCancelEventArgs e)
{
if (treeView1.SelectedNode == null || treeView1.SelectedNode.Parent == null)//跟目录
return;
loadDir.ChildChildNodes(e.Node, filter, true);
} private void treeView1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
treeView1.SelectedNode = treeView1.GetNodeAt(e.X, e.Y);
}
} /// <summary>
/// 加载文件目录,singleton
/// </summary>
public class LoadDir
{
private static LoadDir ld;
private LoadDir()
{
}
/// <summary>
/// 创建实例
/// </summary>
/// <returns>实例</returns>
public static LoadDir CreateIntance()
{
if (ld == null)
ld = new LoadDir();
return ld;
}
/// <summary>
/// 加载磁盘列表
/// </summary>
///// <returns>磁盘列表树结构</returns>
public TreeNode Drives()
{
TreeNode treeNode_myComp = new TreeNode("我的电脑", 0, 0); System.Management.SelectQuery query = new System.Management.SelectQuery("Select * From Win32_LogicalDisk");
System.Management.ManagementObjectSearcher searcher = new System.Management.ManagementObjectSearcher(query);
try
{
foreach (ManagementBaseObject disk in searcher.Get())
{
if (Convert.ToInt32(disk["DriveType"]) == 3)
{
TreeNode tn = new TreeNode();
tn.Text = disk["VolumeName"].ToString() + "(" + disk["Name"].ToString() + ")";
tn.Tag = disk["Name"].ToString() + "\\";
treeNode_myComp.Nodes.Add(tn);
ChildNodes(tn, "false" );
}
}
}
catch
{ } return treeNode_myComp;
} private void ChildNodes(TreeNode tn, string p)
{
throw new NotImplementedException();
}
internal void ChildChildNodes(TreeNode treeNode, string filter, bool p)
{
throw new NotImplementedException();
}
}
/// <summary>
/// 加载目录及文件
/// </summary>
/// <param name="selectedTreeNode"></param>
/// <param name="p_filter"></param>
/// <param name="Expand"></param>
/// <returns></returns>
public TreeNode ChildNodes(TreeNode selectedTreeNode, string p_filter, bool Expand)
{
if (File.Exists(selectedTreeNode.Tag.ToString()) != true)//目录而非文件
{
if (selectedTreeNode.GetNodeCount(false) <= 0)//没打开过
{
try
{
foreach (string s in Directory.GetDirectories(selectedTreeNode.Tag.ToString()))
{
TreeNode tn = new TreeNode();
tn.Tag = s;
tn.Text = s.Split('\\')[(s.Split('\\').Length - 1)];
selectedTreeNode.Nodes.Add(tn);
}
foreach (string s in Directory.GetFiles(selectedTreeNode.Tag.ToString()))
{
TreeNode tn = new TreeNode();
tn.Tag = s;
tn.Text = s.Split('\\')[(s.Split('\\').Length - 1)];
selectedTreeNode.Nodes.Add(tn);
}
if (Expand == true)
selectedTreeNode.Expand();
}
catch
{
}
}
}
return selectedTreeNode;
}
/// <summary>
/// 取子级目录及文件
/// </summary>
/// <param name="selectedTreeNode"></param>
/// <param name="p_filter"></param>
/// <param name="Expand"></param>
/// <returns></returns>
public TreeNode ChildChildNodes(TreeNode selectedTreeNode, string p_filter, bool Expand)
{
try
{
foreach (TreeNode tn in selectedTreeNode.Nodes)
{
if (File.Exists(tn.Tag.ToString()) != true)//目录而非文件
{
ChildNodes(tn, p_filter, false);
}
}
}
catch
{
}
return selectedTreeNode;
} public TreeNode ChildNodes(TreeNode selectedTreeNode)
{
return ChildNodes(selectedTreeNode, "", false);
} }
}提示没有错误了。。可是为什么什么都不显示呢。是不是接口连接错误来个高手帮下。小弟新手不懂得较多。。在线等
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Management;namespace test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//treeView1.Nodes.Coler
/// <summary>
/// Form1 的摘要说明。
/// </summary>
public class Form : System.Windows.Forms.Form
{
private System.Windows.Forms.TreeView treeView1;
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.Container components = null; public Form()
{
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent(); //
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
} /// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose(bool disposing)
{
if (disposing)
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose(disposing);
} #region Windows 窗体设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.treeView1 = new System.Windows.Forms.TreeView();
this.SuspendLayout();
//
// treeView1
//
this.treeView1.ImageIndex = -1;
this.treeView1.Location = new System.Drawing.Point(8, 16);
this.treeView1.Name = "treeView1";
this.treeView1.SelectedImageIndex = -1;
this.treeView1.Size = new System.Drawing.Size(272, 232);
this.treeView1.TabIndex = 0;
this.treeView1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.treeView1_MouseDown);
this.treeView1.DoubleClick += new System.EventHandler(this.treeView1_DoubleClick);
this.treeView1.BeforeExpand += new System.Windows.Forms.TreeViewCancelEventHandler(this.treeView1_BeforeExpand);
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(292, 273);
this.Controls.Add(this.treeView1);
this.Name = "Form1";
this.Text = "Form1";
this.Load += new System.EventHandler(this.Form1_Load);
this.ResumeLayout(false); }
#endregion /// <summary>
/// 应用程序的主入口点。
/// </summary>
private LoadDir loadDir;
string filter = "";
private void Form1_Load(object sender, System.EventArgs e)
{
loadDir = LoadDir.CreateIntance();
treeView1.Nodes.Add(loadDir.Drives());
} private void treeView1_DoubleClick(object sender, System.EventArgs e)
{
if (treeView1.SelectedNode == null || treeView1.SelectedNode.Parent == null)//跟目录
return;
try
{
loadDir.ChildChildNodes(treeView1.SelectedNode, filter, true);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
} private void treeView1_BeforeExpand(object sender, System.Windows.Forms.TreeViewCancelEventArgs e)
{
if (treeView1.SelectedNode == null || treeView1.SelectedNode.Parent == null)//跟目录
return;
loadDir.ChildChildNodes(e.Node, filter, true);
} private void treeView1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
treeView1.SelectedNode = treeView1.GetNodeAt(e.X, e.Y);
}
} /// <summary>
/// 加载文件目录,singleton
/// </summary>
public class LoadDir
{
private static LoadDir ld;
private LoadDir()
{
}
/// <summary>
/// 创建实例
/// </summary>
/// <returns>实例</returns>
public static LoadDir CreateIntance()
{
if (ld == null)
ld = new LoadDir();
return ld;
}
/// <summary>
/// 加载磁盘列表
/// </summary>
///// <returns>磁盘列表树结构</returns>
public TreeNode Drives()
{
TreeNode treeNode_myComp = new TreeNode("我的电脑", 0, 0); System.Management.SelectQuery query = new System.Management.SelectQuery("Select * From Win32_LogicalDisk");
System.Management.ManagementObjectSearcher searcher = new System.Management.ManagementObjectSearcher(query);
try
{
foreach (ManagementBaseObject disk in searcher.Get())
{
if (Convert.ToInt32(disk["DriveType"]) == 3)
{
TreeNode tn = new TreeNode();
tn.Text = disk["VolumeName"].ToString() + "(" + disk["Name"].ToString() + ")";
tn.Tag = disk["Name"].ToString() + "\\";
treeNode_myComp.Nodes.Add(tn);
ChildNodes(tn, "false" );
}
}
}
catch
{ } return treeNode_myComp;
} private void ChildNodes(TreeNode tn, string p)
{
throw new NotImplementedException();
}
internal void ChildChildNodes(TreeNode treeNode, string filter, bool p)
{
throw new NotImplementedException();
}
}
/// <summary>
/// 加载目录及文件
/// </summary>
/// <param name="selectedTreeNode"></param>
/// <param name="p_filter"></param>
/// <param name="Expand"></param>
/// <returns></returns>
public TreeNode ChildNodes(TreeNode selectedTreeNode, string p_filter, bool Expand)
{
if (File.Exists(selectedTreeNode.Tag.ToString()) != true)//目录而非文件
{
if (selectedTreeNode.GetNodeCount(false) <= 0)//没打开过
{
try
{
foreach (string s in Directory.GetDirectories(selectedTreeNode.Tag.ToString()))
{
TreeNode tn = new TreeNode();
tn.Tag = s;
tn.Text = s.Split('\\')[(s.Split('\\').Length - 1)];
selectedTreeNode.Nodes.Add(tn);
}
foreach (string s in Directory.GetFiles(selectedTreeNode.Tag.ToString()))
{
TreeNode tn = new TreeNode();
tn.Tag = s;
tn.Text = s.Split('\\')[(s.Split('\\').Length - 1)];
selectedTreeNode.Nodes.Add(tn);
}
if (Expand == true)
selectedTreeNode.Expand();
}
catch
{
}
}
}
return selectedTreeNode;
}
/// <summary>
/// 取子级目录及文件
/// </summary>
/// <param name="selectedTreeNode"></param>
/// <param name="p_filter"></param>
/// <param name="Expand"></param>
/// <returns></returns>
public TreeNode ChildChildNodes(TreeNode selectedTreeNode, string p_filter, bool Expand)
{
try
{
foreach (TreeNode tn in selectedTreeNode.Nodes)
{
if (File.Exists(tn.Tag.ToString()) != true)//目录而非文件
{
ChildNodes(tn, p_filter, false);
}
}
}
catch
{
}
return selectedTreeNode;
} public TreeNode ChildNodes(TreeNode selectedTreeNode)
{
return ChildNodes(selectedTreeNode, "", false);
} }
}提示没有错误了。。可是为什么什么都不显示呢。是不是接口连接错误来个高手帮下。小弟新手不懂得较多。。在线等
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货