操作系统课程设计文件管理实验报告剖析doc.docx

上传人:b****2 文档编号:1343344 上传时间:2022-10-21 格式:DOCX 页数:13 大小:18.01KB
下载 相关 举报
操作系统课程设计文件管理实验报告剖析doc.docx_第1页
第1页 / 共13页
操作系统课程设计文件管理实验报告剖析doc.docx_第2页
第2页 / 共13页
操作系统课程设计文件管理实验报告剖析doc.docx_第3页
第3页 / 共13页
操作系统课程设计文件管理实验报告剖析doc.docx_第4页
第4页 / 共13页
操作系统课程设计文件管理实验报告剖析doc.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

操作系统课程设计文件管理实验报告剖析doc.docx

《操作系统课程设计文件管理实验报告剖析doc.docx》由会员分享,可在线阅读,更多相关《操作系统课程设计文件管理实验报告剖析doc.docx(13页珍藏版)》请在冰豆网上搜索。

操作系统课程设计文件管理实验报告剖析doc.docx

操作系统课程设计文件管理实验报告剖析doc

 

操作系统课程实验报告

 

2013~2014年度第1学期

 

院系:

学号:

姓名:

 

任课教师:

成绩评定:

 

实验一题目:

文件管理

 

完成日期:

年月日

 

1、实验目的

了解文件管理的功能和任务,理解文件系统组成和特点,熟悉文件系统的访问和操作。

实验要求用高级语言编写和调试一个简单的模拟文件管理程序。

加深理解有关盘块的分配与回收、目录管理等的具体实施策略。

2.、实验内容

 

模拟一个资源管理器进行文件操作,包括建立和删除目录、建立和删除文件等基本文件

操作。

建立相应的数据结构(如:

位示图等),模拟盘块管理。

可以参照图6界面进行设计。

 

3、算法设计

1)、定义主面板MainFrame,布局好各个控件,并初始化

/*

*往node节点下添加一个子节点obj;

*/

publicvoidaddChild(Objectobj,DefaultMutableTreeNodenode){if(obj!

=null&&node!

=null){

DefaultMutableTreeNodetemp=newDefaultMutableTreeNode(obj);

if(node.getAllowsChildren())

node.add(temp);

if(!

((String)obj).equals("A:

\\")&&

 

((String)

 

obj).length()<=3)//防止读取

 

A软

 

驱,会出现异常;用于初始用的;

addChildren(cmd.listAll((String)obj),temp);

}

}

 

/*

*在node节点下添加数组children;

*/

publicvoidaddChildren(String[]children,DefaultMutableTreeNodenode){if(children!

=null&&node!

=null){

for(inti=0;i

addChild(children[i],node);

}

}

}

 

/*

*对树的节点进行预提取;

*/

publicvoidaddPrefetchChildren(Stringpath,DefaultMutableTreeNodenode){addChildren(cmd.listDirectory(path),node);

}

 

/*

*对路径路径进行连接;(已经获得了所有的整个路径,需要量转化)

*/

publicStringtoFilePath(Stringstr){

//先去掉头尾的[];

Stringpa=str.substring(1,str.length()-1);

String[]temp=pa.split(",");

Stringpath="";

for(inti=1;i

if(!

path.endsWith("\\")&&!

path.equals(""))//不为空是为去根节点;path+="\\";

 

path+=temp[i];

}

returnpath;

}

 

publicStringtoPFilePath(Stringstr){

//先去掉头尾的[];

Stringpa=str.substring(1,str.length()-1);

String[]temp=pa.split(",");

Stringpath="";

 

for(inti=1;i

if(!

path.endsWith("\\")&&!

path.equals(""))//不为空是为去根节点;path+="\\";

 

path+=temp[i];

}

returnpath;

}

 

publicclassExpandListenerimplementsTreeWillExpandListener{

/*

*树展开及收缩监听;

*/

privateMainFramemainFrame=null;

 

publicExpandListener(MainFramemainFrame){

this.mainFrame=mainFrame;

}

 

publicvoidtreeWillExpand(TreeExpansionEventevent){

//对节点的路径进行转化

Stringpath=toFilePath(event.getPath().toString());

TreePathtreePath=event.getPath();

DefaultMutableTreeNodenode=(DefaultMutableTreeNode)treePath

.getLastPathComponent();

//System.out.println("所展开节点的路径:

"+path);

//System.out.println(treePath);

if(node.getDepth()<2){

Enumerationchildren=node.children();

StringfilePath="";

while(children.hasMoreElements()){

DefaultMutableTreeNodetemp=(DefaultMutableTreeNode)children

.nextElement();

filePath="";

filePath=path;

if(!

filePath.endsWith("\\"))

filePath+="\\";

filePath+=temp.toString();

//System.out.println("temp="+filePath);mainFrame.addPrefetchChildren(filePath,temp);

}

}

}

 

2)、添加功能“添加文件(夹)addframe()”、“修改文件(夹)mvframe()”

 

publicvoidaddframe(){

JFrameaddFrame=newJFrame();

JLabeljlbl=newJLabel("请输入要添加的文件

addrs=newJLabel("");

addrs.setBounds(180,10,100,25);

jlbl.setBounds(10,10,170,25);

addfile=newJTextField();

addfile.setBounds(10,40,260,25);

btnaddf=newJButton("添加文件");

btnaddd=newJButton("添加文件夹");

btnaddf.setBounds(20,80,100,25);

btnaddd.setBounds(160,80,100,25);

btnaddf.addActionListener(this);

btnaddd.addActionListener(this);

addFrame.add(jlbl);

addFrame.add(addrs);

addFrame.add(addfile);

addFrame.add(btnaddf);

addFrame.add(btnaddd);

addFrame.setBounds(400,350,300,150);

addFrame.setTitle("添加文件(夹)");

 

(夹)名:

");

addFrame.setLayout(null);

addFrame.setVisible(true);

}

 

publicvoidmvframe(){

JFramemvFrame=newJFrame();

JLabeljlbl=newJLabel("请输入修改后的文件名:

");

mvrs=newJLabel("");

mvrs.setBounds(160,10,140,25);

jlbl.setBounds(10,10,170,25);

mvfile=newJTextField();

mvfile.setBounds(10,40,260,25);

btnmvf=newJButton("修改文件名");

btnmvd=newJButton("修改文件夹名");

btnmvf.setBounds(10,80,120,25);

btnmvd.setBounds(150,80,120,25);

btnmvf.addActionListener(this);

btnmvd.addActionListener(this);

mvFrame.add(jlbl);

mvFrame.add(mvrs);

mvFrame.add(mvfile);

mvFrame.add(btnmvf);

mvFrame.add(btnmvd);

 

mvFrame.setBounds(400,350,300,150);

mvFrame.setTitle("修改文件(夹)名");

mvFrame.setLayout(null);

mvFrame.setVisible(true);

}

}

 

3)显示文件

*显示系统中的所有盘符;

publicString[]ListDisks(){

Fileroots[]=File.listRoots();//根盘符;

Stringdisks[]=newString[roots.length];

for(inti=0;i

disks[i]=roots[i].toString();

}

returndisks;

}

*获得路径path下的文件;

publicString[]listAll(Stringpath){

try{

Filef=newFile(path);

String[]fileName;

Stringtmp=null;

mainFrame.fileshow.setText(null);

mainFrame.filestyle.setText(null);

if(f.isDirectory()){

fileName=f.list();

//System.out.println("共有"+fileName.length+"个文件");for(inti=0;i

mainFr

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 人力资源管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1