好好学习,天天向上,一流范文网欢迎您!
当前位置:首页 >> 最新范文 内容页

NIIT1Project报告格式资源管理器

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);

}

}

}

}

四、程序运行结果与源代码清单

五、训练小结

资源管理器的设计有点复杂,不过抓住基本点,基本可以实现,加上面向对象的设计本身的优越性,这次的设计基本成功。这次设计加深了我对面向对象程序编程的理解。

TAG标签: