NIIT1Project报告格式资源管理器 本文关键词:资源管理器,格式,报告,NIIT1Project
NIIT1Project报告格式资源管理器 本文简介:NIIT-MMS1ProjectTrainingReport专业计算机科学与技术学生姓名林海洋班级B计算机103学号1010704310完成日期2012、1、2信息工程学院一、项目概要资源管理器:实现负责管理数据库、持续消息队列或事务性文件系统中的持久性或持续性数据。二、开发环境介绍资源管理器是在W
NIIT1Project报告格式资源管理器 本文内容:
NIIT-MMS1
Project
Training
Report
专业
计算机科学与技术
学生姓名
林海洋
班级
B计算机103
学号
1010704310
完成日期
2012、1、2
信
息
工
程
学
院
一、项目概要
资源管理器:实现负责管理数据库、持续消息队列或事务性文件系统中的持久性或持续性数据。
二、开发环境介绍
资源管理器是在Windows.NET
Framework的编译环境下生成的以C#为实现语言的程序。实现资源管理器需要TreeView和ListView两个控件。
三、实现方法及步骤
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;
namespace
资源管理器
{
public
partial
class
Form1
:
Form
{
public
Form1()
{
InitializeComponent();
}
private
void
Form1_Load(object
sender,EventArgs
e)
{
//加一个根目录
TreeNode
root1
=
new
TreeNode(“我的电脑“);
treeView1.Nodes.Add(root1);
GetDrive();
//添加磁盘名称的方法
foreach
(TreeNode
root
in
treeView1.Nodes)
{
AddSubDir(root);
//添加每个磁盘的子文件夹的方法
}
}
///
///
获取逻辑磁盘并加到TreeView中的方法
///
private
void
GetDrive()
{
//获取磁盘的盘符(通过静态Directory方法调用获取逻辑驱动器名称)
string[]
drives
=
Directory.GetLogicalDrives();
//添加盘符到树中,遍历数组
TreeNode
node
=
null;
foreach
(string
drive
in
drives)
{
DriveInfo
dif
=
new
DriveInfo(drive);//(DriveInfo)提供对有关指定驱动器的信息的访问
if
(dif.DriveType
==
DriveType.CDRom)
{
node
=
new
TreeNode(drive,0,0);
treeView1.Nodes.Add(node);
}
else
{
node
=
new
TreeNode(drive,3,3);
treeView1.Nodes.Add(node);
}
}
}
///
///
添加子文件夹的方法
///
///
private
void
AddSubDir(TreeNode
node)
//需要传过来一个节点的名称
{
node.Nodes.Clear();//首先清空上次选中的节点
string
path
=
node.FullPath;
//根据路径生成文件夹对象(通过实例方法DirectoryInfo来实现)
DirectoryInfo
dirf
=
new
DirectoryInfo(path);
try
{//获取该文件夹的所有子文件夹
DirectoryInfo[]
folds
=
dirf.GetDirectories();
TreeNode
foldnode
=
null;
foreach
(DirectoryInfo
fold
in
folds)
{
//Attributes获取或设置当前文件或目录的特性(是否有隐藏的文件)
if
(!fold.Attributes.ToString().Contains(“Hidden“))
{
foldnode
=
new
TreeNode(fold.Name,2,2);
node.Nodes.Add(foldnode);
}
}
}
catch
(Exception
)
{
}
//放到Try
catch
中是为了显示异常的信息,比如没有子文件夹的G盘
}
///
///
给每个子文件夹添加文件的方法
///
///
private
void
AddFile(string
Path)//需要传过来一个要添加文件的文件夹(节点)的名称
{
listView1.Items.Clear();
//根据路径生成文件夹对象(通过实例方法DirectoryInfo来实现)
DirectoryInfo
dirf
=
new
DirectoryInfo(Path);
try
{FileInfo[]
files
=
dirf.GetFiles();
for
(int
i
=
0;
i
<
files.Length;
i++)
{
listView1.Items.Add(files[i].Name,2);
listView1.Items[i].SubItems.Add(files[i].Length.ToString
());
listView1.Items[i].SubItems.Add(files[i].Extension
);//获取文件的扩展名
listView1.Items[i].SubItems.Add(files[i].LastWriteTime.ToString()
);
}
}
catch
(Exception
)
{
}
//获取该文件夹的所有子文件
}
private
void
treeView1_AfterSelect(object
sender,TreeViewEventArgs
e)
{
AddFile(e.Node.FullPath);
}
private
void
treeView1_AfterExpand(object
sender,TreeViewEventArgs
e)
{
foreach
(TreeNode
node
in
e.Node.Nodes)
{
AddSubDir(node);
}
}
}
}
四、程序运行结果与源代码清单
五、训练小结
资源管理器的设计有点复杂,不过抓住基本点,基本可以实现,加上面向对象的设计本身的优越性,这次的设计基本成功。这次设计加深了我对面向对象程序编程的理解。