版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、操作系统课程实验报告20132014 年度第 1 学期院系:学号:姓名:任课教师:成绩评定:实验一题目:文件管理完成日期:年月 日1、实验目的了解文件管理的功能和任务,理解文件系统组成和特点,熟悉文件系统的访问和操作。实验要求用高级语言编写和调试一个简单的模拟文件管理程序。 加深理解有关盘块的分配与回收、目录管理等的具体实施策略。2.、实验内容模拟一个资源管理器进行文件操作,包括建立和删除目录、建立和删除文件等基本文件操作。建立相应的数据结构(如:位示图等),模拟盘块管理。可以参照图6界面进行设计。3、算法设计1)、定义主面板MainFrame ,布局好各个控件,并初始化/* 往node节点下
2、添加一个子节点 obj;*/public void addChild(Object obj, DefaultMutableTreeNode node) if (obj != null & node != null) DefaultMutableTreeNode temp =new DefaultMutableTreeNode(obj);if (node.getAllowsChildren()node.add(temp);if (!(String) obj).equals( A: ) &(String)obj).length() = 3)/ 防止读取A 软驱,会出现异常 ;用于初始用的;addC
3、hildren( cmd.listAll(String) obj), temp);/* 在node节点下添加数组 children;*/public void addChildren(String children, DefaultMutableTreeNode node) if (children != null & node != null ) for (int i = 0; i children. length; i+) addChild(childreni, node);/* 对树的节点进行预提取 ;*/public void addPrefetchChildren(String pa
4、th, DefaultMutableTreeNode node) addChildren( cmd.listDirectory(path), node);/* 对路径路径进行连接 ;(已经获得了所有的整个路径 ,需要量转化 )*/public String toFilePath(String str) / 先去掉头尾的 ;String pa = str.substring(1, str.length() - 1);String temp = pa.split( , );String path = ;for (int i = 1; i temp. length; i+) if (!path.en
5、dsWith( ) & !path.equals( )/ 不为空是为去根节点 ; path += ;path += tempi;return path;public String toPFilePath(String str) / 先去掉头尾的 ;String pa = str.substring(1, str.length() - 1);String temp = pa.split( , );String path = ;for (int i = 1; i temp. length - 1; i+) if (!path.endsWith( ) & !path.equals( )/ 不为空是为
6、去根节点 ; path += ;path += tempi;return path;public class ExpandListener implements TreeWillExpandListener /* 树展开及收缩监听 ;*/private MainFrame mainFrame = null;public ExpandListener(MainFrame mainFrame) this.mainFrame = mainFrame;public void treeWillExpand(TreeExpansionEvent event) / 对节点的路径进行转化String path
7、 = toFilePath(event.getPath().toString();TreePath treePath = event.getPath();DefaultMutableTreeNode node = (DefaultMutableTreeNode) treePath.getLastPathComponent();/ System.out.println( 所展开节点的路径: + path);/ System.out.println(treePath);if (node.getDepth() 2) Enumeration children = node.children();Str
8、ing filePath = ;while (children.hasMoreElements() DefaultMutableTreeNode temp = (DefaultMutableTreeNode) children.nextElement();filePath = ;filePath = path;if (!filePath.endsWith( )filePath += ;filePath += temp.toString();/ System.out.println(temp= +filePath); mainFrame.addPrefetchChildren(filePath,
9、 temp);2)、添加功能 “添加文件(夹)addframe() ”、 “修改文件(夹)mvframe() ”public void addframe() JFrame addFrame = new JFrame();JLabel jlbl = new JLabel(请输入要添加的文件addrs = new JLabel( );addrs.setBounds(180, 10, 100, 25);jlbl.setBounds(10, 10, 170, 25);addfile = new JTextField();addfile .setBounds(10, 40, 260, 25);btnad
10、df = new JButton( 添加文件 );btnaddd = new JButton( 添加文件夹 );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);
11、addFrame.setBounds(400, 350, 300, 150);addFrame.setTitle( 添加文件(夹) );(夹 )名: );addFrame.setLayout(null);addFrame.setVisible( true );public void mvframe() JFrame mvFrame = new JFrame();JLabel jlbl = new JLabel(请输入修改后的文件名:);mvrs = new JLabel( );mvrs.setBounds(160, 10, 140, 25);jlbl.setBounds(10, 10, 170
12、, 25);mvfile = new JTextField();mvfile .setBounds(10, 40, 260, 25);btnmvf = new JButton( 修改文件名 );btnmvd = new JButton( 修改文件夹名);btnmvf .setBounds(10, 80, 120, 25);btnmvd .setBounds(150, 80, 120, 25);btnmvf .addActionListener( this);btnmvd .addActionListener( this);mvFrame.add(jlbl);mvFrame.add(mvrs);
13、mvFrame.add(mvfile );mvFrame.add(btnmvf );mvFrame.add(btnmvd);mvFrame.setBounds(400, 350, 300, 150);mvFrame.setTitle( 修改文件(夹)名);mvFrame.setLayout( null);mvFrame.setVisible( true );3)显示文件* 显示系统中的所有盘符 ;public String ListDisks() File roots = File. listRoots();/ 根盘符 ;String disks = new Stringroots. leng
14、th ;for (int i = 0; i roots. length; i+) disksi = rootsi.toString();return disks;* 获得路径 path下的文件 ;public String listAll(String path) try File f = new File(path);String fileName;String tmp = null;mainFrame.fileshow .setText(null );mainFrame.filestyle .setText(null);if (f.isDirectory() fileName = f.li
15、st();/ System.out.println( 共有 + fileName.length + 个文件 ); for (int i = 0; i fileName. length ; i+) mainFrame.fileshow .append(fileNamei +n);tmp = path + + fileNamei;/ System.out.println(tmp);if (listDirectory(tmp) !=null ) mainFrame.filestyle .append( 文件夹 n ); elsemainFrame.filestyle .append( 文件 n);r
16、eturn fileName; elseif (f.isFile() System.out.println( 这是一个文件);return null; else / System.out.println(path);return null; catch (Exception e) return null;public String listDirectory(String path) File f = new File(path);String fileName;if (f.isDirectory() fileName = f.list();return fileName; else / Sy
17、stem.out.println(path + 是文件 );return null;* 进行 md操作 ;md 功能 : 创建新目录public void md(String directory) if (! mainFrame.currentPath.equals( ) String temp = mainFrame.currentPath + + directory;File newFile = new File(temp);if (!newFile.exists() try if (newFile.isDirectory() =false) newFile.mkdirs();System
18、.out.println( 文件夹创建成功! ); elseSystem.out.println( 文件夹创建出错! ); catch (Exception e) System.out.println( 出错信息 : + e.getMessage(); else System.out.println( 文件夹已经存在);* 进行 rd操作 ;rd 功能 : 删除目录 ;public void del() String temp = mainFrame .currentPath;File file = new File(temp);if (file.exists() if (file.delet
19、e() mainFrame.fileshow .setText(文件 (夹 )删除成功 ! ); else mainFrame.fileshow .setText(文件 (夹 )删除操作出错! ); else mainFrame.fileshow .setText( 文件 ( 夹 )不存在 );/* 进行 edit操作 :edit 功能 : 新建文件*/public void edit(String file) if (! mainFrame.currentPath.equals( ) String temp = mainFrame.currentPath + + file;File newF
20、ile = new File(temp);if (newFile.exists() mainFrame.addrs.setText( 文件已经存在!);System.out.println( 文件已经存在! ); else try newFile.createNewFile();mainFrame.addrs.setText( 文件创建成功! );System.out.println( 文件创建成功! ); catch (Exception e) System.out.println( 文件创建失败: + e.getMessage();public void mvf(String file)if (! mainFrame.PPath.equals( ) String temp = mainFrame.PPath + + file;File newFile = new File( mainFrame.currentPath);if (newFile.exists() if (newFile.renameTo( new File(temp)= true )mainFrame.mvrs.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 官方解析:2025年高考湖南卷 历史试题
- 产业地产集团运营制度
- 印象物业即时奖惩制度
- 村级培训班奖惩制度范本
- 教师教学活动奖惩制度
- 临时库房安全防火制度
- 快餐创业计划书奖惩制度
- 施工班组安全奖惩制度
- 农贸市场创文奖惩制度
- 心脑血管自查与奖惩制度
- 冷冻电镜在生物医学中的应用
- 《森林培育学》第二章 森林立地
- 陕县赵里河铝土矿矿产资源开采与生态修复方案
- 四川大学化工复试资料 四川大学化工原理(I)教学大纲
- GB/T 8464-2023铁制、铜制和不锈钢制螺纹连接阀门
- 群文阅读:《祖国啊-我亲爱的祖国》《梅岭三章》《短诗五首》《海燕》(课件)-九年级语文下册(部编版)
- 高中物理 奥赛培训力学
- GB/T 2504-1989船用铸钢法兰(四进位)
- GB/T 18271.3-2017过程测量和控制装置通用性能评定方法和程序第3部分:影响量影响的试验
- 法语学习《新大学法语三》课件
- 教学用薪酬管理三级0课件
评论
0/150
提交评论