建立自己的资源管理器

建立自己的资源管理器

这篇文章介绍了如何得到本地系统信息,通过使用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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值