好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

【2017年整理】操作系统多级目录查询课程设计报告.docx

14页
  • 卖家[上传人]:爱****1
  • 文档编号:940926
  • 上传时间:2017-05-23
  • 文档格式:DOCX
  • 文档大小:751.79KB
  • / 14 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 操作系统课程设计学号:20102805姓名:李恩惠课题:多级目录查询班级:2010-计算机科学与技术 04班指导老师:田卫东2013.07.01.1.多级目录结构 对于大型文件系统,通常采用三级或三级以上的目录结构,以提高对目录的检索速度 和文件系统的性能多级目录结构又称为树型目录结构,主目录在这里被称为根目录,把 数据文件称为树叶,其它的目录均作为树的结点图 6-19 示出了多级目录结构图中,用 方框代表目录文件,圆圈代表数据文件在该树型目录结构中,主(根) 目录中有三个用户的 总目录项 A、B 和 C在 B 项所指出的 B 用户的总目录 B 中,又 包括三个分目录 F、E 和 D, 其中每个分目录中又包含多个文件如 B 目录中的 F 分目录中,包含 J 和 N 两个文件为 了提高文件系统的灵活性,应允许在一个目录文件中的目录项既是作为目录文件的 FCB, 又是数据文件的 FCB,这一信息可用目录项中的一位来指示例如,在图 6-19 中,用户 A 的总目录中,目录项 A 是目录文件的 FCB,而目录项 B 和 D 则是数据文件的 FCB 多级目录结构图2 目录查询原理路径名在树形目录结构中,从根目录到任何数据文件,都只有一条惟一的通路。

      在该路径上 从树的根(即主目录 )开始,把全部目录文件名与数据文件名依次地用 “/”连接起来,即构 成该数据文件的路径名(path name)系统中的每一个文件都有惟一的路径名例如,在图 6-19 中用户 B 为访问文件 J,应使用其路径名/B/F/J 来访问 3) 当前目录(Current Directory) 当一个文件系统含有许多级时,每访问一个文件,都要使用从树根开始直到树叶(数据 文件) 为止的、包括各中间节点 (目录)名的全路径名这是相当麻烦的事,同时由于一个进 程运行时所访问的文件大多仅局限于某个范围,因而非常不便基于这一点,可为每个进 程设置一个“当前目录”,又称为“工作目录”进程对各文件的访问都相对于“当前目录”而进行此时各文件所使用的路径名,只需从当前目录开始,逐级经过中间的目录文件, 最后到达要访问的数据文件把这一路径上的全部目录文件名与数据文件名用“/”连接形 成路径名如用户 B 的当前目录是 F,则此时文件 J 的相对路径名仅是 J 本身这样,把从 当前目录开始直到数据文件为止所构成的路径名,称为相对路径名(relative path name);而 把从树根开始的路径名称为绝对路径名(absolute path name)。

      就多级目录较两级目录而言,其查询速度更快,同时层次结构更加清晰,能够更加有 效地进行文件的管理和保护在多级目录中,不同性质、不同用户的文件可以构成不同的 目录子树,不同层次、不同用户的文件分别呈现在系统目录树中的不同层次或不同子树中, 可以容易地赋予不同的存取权限 但是在多级目录中查找一个文件,需要按路径名逐级访问中间节点,这就增加了磁盘 访问次数,无疑将影响查询速度 目前,大多数操作系统如 UNIX、Linux 和 Windows 系列都采用了多级目录结构3 目录查询系统界面工作步骤:输入绝对路径 点击 ok 按钮会在下方工作区显示各目录分量以及是否存在该目录和各目录分量下的文件个数 如输入:c:\users\eh_sky\desktop\bb.gif 就会显示如下图所示:其中 bb.gif 一行中数据文件表示你 bb.gif 是数据文件不是目录文件 这时可以通过点击其后面的 btn 按钮获取响应的文件目录下的各个文件名,如如果输入路径中某一个分量不存在 就会在是否存在栏里显示 no 响应的含有文件个数栏里显示“-”如下图所示其他功能如文件目录查询原理:和课题信息源代码如下:import javax.swing.*;import java.io.File;import java.awt.event.*;import java.awt.*;@SuppressWarnings("serial")public class DirectorySearch extends JFrame implements ActionListener{//界面中相关组件的定义JLabel inputlbl=new JLabel ("输入路径");JLabel resultlbl=new JLabel("运行结果");JLabel namelbl=new JLabel("文件分量名");JLabel existlbl=new JLabel("是否存在(Y/N)");JLabel countlbl=new JLabel("含有文件个数");JLabel contentlbl=new JLabel("含有的文件");JLabel tiplbl=new JLabel("说明: 1)请使用绝对路径,格式如 aa\\bb\\cc 2)通过点击 btn[]获取相关文件名");JTextField inputtext=new JTextField(50);JTextField resulttext=new JTextField(50);JButton surebtn=new JButton("ok");JButton canclebtn=new JButton("cancel");JButton againbtn=new JButton("again");JButton closebtn=new JButton("close");JPanel jpanel0=new JPanel();JPanel jpanel1=new JPanel();JPanel jpanel2=new JPanel();JSplitPane js=new JSplitPane(JSplitPane.VERTICAL_SPLIT);JTextField text[][]=new JTextField[10][4];JButton btn[]=new JButton[10];JTextArea textarea=new JTextArea(20,30);JButton instrbtn=new JButton("文件目录查询原理");JButton aboutbtn=new JButton("课题信息");ImageIcon image=new ImageIcon("d:\\os.jpg");JLabel label=new JLabel();String areatext="课题信息:\n 学号:20102805\n 姓名:李恩惠\n 班级:计算机 10-04\n 题号:22\n 题目:多级文件目录查询";JTextArea aboutarea=new JTextArea(areatext,20,30);//相关变量的定义static String dirString;static String[]dirList;static int n;static int count;static String path;File f;String[]list;String test[];String message="";public DirectorySearch(String title){super(title);setSize(500,580);setResizable(false);//界面组件位置设置inputlbl.setBounds(20,20,100,20);inputlbl.setForeground(Color.blue);inputtext.setBounds(130,20,170,20);inputtext.setForeground(Color.blue);surebtn.setBounds(320,20,80,20);canclebtn.setBounds(410,20,80,20);resultlbl.setBounds(20,60,100,20);resultlbl.setForeground(Color.blue);resulttext.setBounds(130,60,170,20);resulttext.setForeground(Color.blue);//resulttext.setEnabled(false);againbtn.setBounds(320,60,80,20);closebtn.setBounds(410,60,80,20);tiplbl.setBounds(20,95,470,20);tiplbl.setForeground(Color.red);instrbtn.setBounds(20,135,200,20);instrbtn.setForeground(Color.blue);aboutbtn.setBounds(260,135,200,20);aboutbtn.setForeground(Color.blue);//给 jpanel1 上的按钮添加监视器surebtn.addActionListener(this);canclebtn.addActionListener(this);againbtn.addActionListener(this);closebtn.addActionListener(this);instrbtn.addActionListener(this);aboutbtn.addActionListener(this);//添加组件到 jpanel1jpanel1.setLayout(null);jpanel1.add(inputlbl);jpanel1.add(inputtext);jpanel1.add(surebtn);jpanel1.add(canclebtn);jpanel1.add(resultlbl);jpanel1.add(resulttext);jpanel1.add(againbtn);jpanel1.add(closebtn);jpanel1.add(tiplbl);jpanel1.add(instrbtn);jpanel1.add(aboutbtn);//jpanel2 组件设置namelbl.setForeground(Color.blue);existlbl.setForeground(Color.blue);countlbl.setForeground(Color.blue);contentlbl.setForeground(Color.blue);//添加组件到 jpanel2 上jpanel2.setLayout(new GridLayout(11,4,20,10));jpanel2.add(namelbl);jpanel2.add(existlbl);jpanel2.add(countlbl);jpanel2.add(contentlbl);for(int i=0;i<10;i++){for(int j=0;j<3;j++)text[i][j]=new JTextField();btn[i]=new JButton("btn"+(i+1));btn[i].addActionListener(this);}for(int i=0;i<10;i++){for(int j=0;j<3;j++)jpanel2.add(text[i][j]);jpanel2.add(btn[i]);label.setIcon(image);//分隔框的设计js.setBorder(BorderFactory.createEtchedBorder());js.setDividerLocation(170);js.setDividerSize(20);js.setTopComponent(jpanel1);js.setBottomC。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.