建立自己的资源管理器

来源:互联网 发布:运动视频分析软件 编辑:程序博客网 时间:2024/05/16 08:33

建立自己的资源管理器

这篇文章介绍了如何得到本地系统信息,通过使用System.Management和Sysetm.IO 来得到文件夹和文件信息,并且把它们显示到TreeView、ListView控件z之中。

首先可以使用ManagementObjectSearcher类来查询system.management域,来获取返回ManagementOjbectCollection,在这个对象中,包含了我们所需要的信息,包括盘,文件夹,文件,现在让我们来看一下整个源码:

System.Windows.Forms.Splitter splitter1; 
private System.Windows.Forms.MainMenu mainMenu1; 
private System.Windows.Forms.MenuItem menuItem1; 
private System.Windows.Forms.MenuItem menuItem2; 
private System.Windows.Forms.MenuItem menuItem3; 
private System.Windows.Forms.MenuItem menuItem4; 
private System.Windows.Forms.TreeView tvFolders; 
private System.Windows.Forms.ListView lvFiles; 
private System.Windows.Forms.ImageList m_imageListTreeView; 
private System.ComponentModel.IContainer components; 
///

这里是ide自动产生的

///

private void PopulateDriveList() 

TreeNode nodeTreeNode; 
int imageIndex = 0; 
int selectIndex = 0;

const int Removable = 2; 
const int LocalDisk = 3; 
const int Network = 4; 
const int CD = 5;


this.Cursor = Cursors.WaitCursor;

tvFolders.Nodes.Clear();//清空树 
nodeTreeNode = new TreeNode("My Computer",0,0);// 
tvFolders.Nodes.Add(nodeTreeNode);


TreeNodeCollection nodeCollection = nodeTreeNode.Nodes;

ManagementObjectCollection queryCollection = getDrives(); 
foreach ( ManagementObject mo in queryCollection) 
{

switch (int.Parse( mo["DriveType"].ToString())) 

case Removable: //可移动盘 
imageIndex = 5; 
selectIndex = 5; 
break; 
case LocalDisk: //本地磁盘 
imageIndex = 6; 
selectIndex = 6; 
break; 
case CD: //光盘 
imageIndex = 7; 
selectIndex = 7; 
break; 
case Network: //网络驱动盘 
imageIndex = 8; 
selectIndex = 8; 
break; 
default: //默认 
imageIndex = 2; 
selectIndex = 3; 
break; 

//建立驱动盘的节点 
nodeTreeNode = new TreeNode(mo["Name"].ToString() + "\\" ,imageIndex,selectIndex);

nodeCollection.Add(nodeTreeNode);

}


//Init files ListView 
InitListView();

this.Cursor = Cursors.Default;

}

private void tvFolders_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e) 
{

this.Cursor = Cursors.WaitCursor;

//获取当前选择的节点或则文件夹 
TreeNode nodeCurrent = e.Node;

//清除掉所有的节点 
nodeCurrent.Nodes.Clear();

if (nodeCurrent.SelectedImageIndex == 0) 
{

PopulateDriveList(); 

else 
{

PopulateDirectory(nodeCurrent, nodeCurrent.Nodes); 

this.Cursor = Cursors.Default; 
}

protected void InitListView() 

//开始初始化 ListView 控件 
lvFiles.Clear(); 
//为察看列表框建立头信息栏 
lvFiles.Columns.Add("Name",150,System.Windows.Forms.HorizontalAlignment.Left); 
lvFiles.Columns.Add("Size",75, System.Windows.Forms.HorizontalAlignment.Right); 
lvFiles.Columns.Add("Created", 140, System.Windows.Forms.HorizontalAlignment.Left); 
lvFiles.Columns.Add("Modified", 140, System.Windows.Forms.HorizontalAlignment.Left);

}

0 0
原创粉丝点击