




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
操作系统课程实验报告20132014年度 第1学期院系:学号: 姓名: 任课教师: 成绩评定:实验一题目:文件管理完成日期:年 月 日1、 实验目的了解文件管理的功能和任务,理解文件系统组成和特点,熟悉文件系统的访问和操作。实验要求用高级语言编写和调试一个简单的模拟文件管理程序。加深理解有关盘块的分配与回收、目录管理等的具体实施策略。 2.、实验内容 模拟一个资源管理器进行文件操作,包括建立和删除目录、建立和删除文件等基本文件操作。建立相应的数据结构(如:位示图等),模拟盘块管理。可以参照图6界面进行设计。3、 算法设计1) 、定义主面板MainFrame,布局好各个控件,并初始化 /* * 往node节点下添加一个子节点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软驱,会出现异常;用于初始用的;addChildren(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 path, 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.endsWith() & !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()/ 不为空是为去根节点;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 = 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();String 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, 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);btnaddf = 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);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, 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);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.length;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.list();/ 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); else mainFrame.filestyle.append(文件n);return fileName; else if (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 / System.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.out.println(文件夹创建成功!); else System.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.delete() 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 newFile = 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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 航拍项目合作协议中关于版权归属与使用范围的补充条款
- 网红奶茶店区域代理销售及推广合同
- 老龄公寓专业管理及社区服务委托合同
- 欧洲移民临时仓储租赁及仓储货物清点协议
- 短视频平台粉丝权益转移与合规管理合同
- 互联网智能零售平台供应链金融解决方案合同
- 医疗边缘计算节点部署与医疗影像处理服务合同
- 销售签单培训
- 培训班课程介绍策略
- 遗产继承税务代理合同(2篇)
- 2025年中考数学复习:二次函数综合 压轴题汇编(含答案)
- 安全风险隐患举报奖励制度
- 家庭防火教育课件
- 华中师范大学第一附中2025届高考仿真模拟数学试卷含解析
- 急诊科运用PDCA循环降低急诊危重患者院内转运风险品管圈QCC专案结题
- 新时代青年的使命与担当2
- JJF 1375-2024机动车发动机转速测量仪校准规范
- 现金日记账模板(出纳版)
- 临床常见操作-灌肠
- 探寻中国茶:一片树叶的传奇之旅学习通超星期末考试答案章节答案2024年
- 冷却塔清洗合同模板
评论
0/150
提交评论