操作系统多级目录查询课程设计报告

上传人:小** 文档编号:43133966 上传时间:2021-11-30 格式:DOC 页数:15 大小:770.50KB
收藏 版权申诉 举报 下载
操作系统多级目录查询课程设计报告_第1页
第1页 / 共15页
操作系统多级目录查询课程设计报告_第2页
第2页 / 共15页
操作系统多级目录查询课程设计报告_第3页
第3页 / 共15页
资源描述:

《操作系统多级目录查询课程设计报告》由会员分享,可在线阅读,更多相关《操作系统多级目录查询课程设计报告(15页珍藏版)》请在装配图网上搜索。

1、Hefei University of Technology操作系统课程设计学号:20102805姓名:李恩惠课题:多级目录查询班级:2010-计算机科学与技术 04班指导老师:田卫东2013.07 . 011多级目录结构对于大型文件系统,通常采用三级或三级以上的目录结构,以提高对目录的检索速度和 文件系统的性能。多级目录结构又称为树型目录结构,主目录在这里被称为根目录,把 数据文件称为树叶,其它的目录均作为树的结点。 图6-19示出了多级目录结构。图中, 用方框代表目录文件,圆圈代表数据文件。在该树型目录结构中,主(根)目录中有三个用户的总目录项 A、B和C。在B项所指出的B用户的总目录 B

2、中,又包括三个分 目录F、E和D,其中每个分目录中又包含多个文件。如B目录中的F分目录中,包含J和N两个文件。为了提高文件系统的灵活性,应允许在一个目录文件中的目录项 既是作为目录文件的 FCB,又是数据文件的 FCB,这一信息可用目录项中的一位来指示。 例如,在图6-19中,用户A的总目录中,目录项 A是目录文件的 FCB而目录项 B 和D则是数据文件的 FCB多级目录结构图AIAD7C6AHLu區目录1-1- 亠斗bon.7der96BImp&*1 -19Ajdc30ftfikimi3645biJi炉块126*- -G4cranif92賤业60mho扎aimijaiK17远406=蛾是Ui

3、r aat的目示2 目录查询原理路径名在树形目录结构中,从根目录到任何数据文件,都只有一条惟一的通路。在 该路径上从树的根 (即主目录 )开始,把全部目录文件名与数据文件名依次地用“/ ”连接起来,即构成该数据文件的路径名 (path name) 。系统中的每一个文件都有惟一的路径名。 例如,在图6-19中用户B为访问文件J,应使用其路径名/B/F/J来访问。3)当前目 录(Current Directory)当一个文件系统含有许多级时,每访问一个文件,都要使用从树根 开始直到树叶 (数据文件 )为止的、包括各中间节点 (目录)名的全路径名。 这是相当麻烦的 事,同时由于一个进程运行时所访问的

4、文件大多仅局限于某个范围,因而非常不便。基 于这一点,可为每个进程设置一个“当前目录”,又称为“工作目录”。进程对各文件 的访问都相对于“当前目录”而进行。此时各文件所使用的路径名,只需从当前目录开 始,逐级经过中间的目录文件,最后到达要访问的数据文件。把这一路径上的全部目录 文件名与数据文件名用“ /”连接形成路径名。如用户 B的当前目录是 F,则此时文件 J 的相对路径名仅是 J 本身。 这样, 把从当前目录开始直到数据文件为止所构成的路径 名,称为相对路径名(relative path name);而把从树根开始的路径名称为绝对路径名 (absolute path name) 。就多级目

5、录较两级目录而言,其查询速度更快,同时层次结构更 加清晰,能够更加有效地进行文件的管理和保护。在多级目录中,不同性质、不同用户 的文件可以构成不同的目录子树, 不同层次、 不同用户的文件分别呈现在系统目录树中 的不同层次或不同子树中, 可以容易地赋予不同的存取权限。但是在多级目录中查找一 个文件,需要按路径名逐级访问中间节点,这就增加了磁盘访问次数,无疑将影响查询 速度。目前,大多数操作系统如UNIX、Linux 和 Windows 系列都采用了多级目录结构3目录查询系统界面工作步骤:输入绝对路径点击ok按钮会在下方工作区显示各目录分量以及是否存在该目录和各目录分量下的文件个数如输入:c:us

6、erseh_skydesktopbb.gif就会显示如下图所示:其中bb.gif 一行中数据文件表示你 bb.gif是数据文件不是目录文件这时可以通过点击 其后面的btn按钮获取响应的文件目录下的各个文件名,如KiASSftcjsrsh_sirWs Hop b 州an劇込fl弟杲SS1.苗定丈件蛮拆床功!列amckHe目说查询逼怒例说明:4膳瞳用脱倔论桔式如弟恥皿7鏈过点缶计【矗鞭相芸处件君交件目暈鱼制悅坯理慙倍战亠舌存布川含宵文件咿说WIlS|P1MI|pzzzT -9B*&13SR.eqtie.6lnbaatmgrEOOTMXTCnllg.MaiDDeuments and &eSlings

7、eBns-ions;jniihi berfil.ByBpagElile.syBP&rtLogsprefs.j&Program FilProgram Files (xSS)PragramDasw-ale.syBSyslem Volume Inlorm-aHDnUsersVjndbWE氏右阳交件如果输入路径中某一个分量不存在就会在是否存在栏里显示no响应的含有文件个数栏里显示“-。如下图所示其他功能如文件目录查询原理:屈目虽朋翎r示实剧和课题信息1again呂最査询洌丽室剧uidud凸晖诡明:*備侵用输懾径會丸hlMC lift过点击闻滋跟怛黄文件名丈件号曼曾星否存在即含有的冥件btnlbEn2M

8、2btrri|btn&bEn6LIj btnr 1btnBUtliPblrilO攵件目录箜相叵悝课題馆息源代码如下:import javax.sw in g.*;import java.io.File;import java.awt.eve nt.*;import java.awt.*;SuppressWar nin gs(serial)消恳O澡鬆信邑:学号:20102605姓容:孚恩惠班怨:计茸机仙明题号:22題目:多型丈件目录査迅)public class DirectorySearch exte nds JFrame impleme nts Actio nListe ner/界面中相关组

9、件的定义JLabel in putlbl=new JLabel (输入路径);JLabel resultlbl=new JLabel (运行结果JSplitPane js=new);JSplitPane(JSplitPane.VERTICAL_SPLIT);JLabel namelbl=new JLabel(文件分量名);JTextField text=newJLabel existlbl=new JLabel(是否存在JTextField104;(Y/N);JButton btn=new JButton10;JLabel coun tlbl=new JLabel(含有文件JTextArea

10、textarea=new JTextArea(20,30);个数);JLabel conten tlbl=new JLabel(含有的 文件 );JButton instrbtn=new JButton( 文件目 录查询原理 );JLabel tiplbl=new JLabel(说明:1)请使用绝对路径 ,格式如 aabbcc2)通过点击 btn 获取相关文件名 );JButton aboutbtn=new JButton( 课题 信息);ImageIcon image=newImageIcon(d:os.jpg);JTextField inputtext=new JTextField(50)

11、;JLabel label=new JLabel();JTextField resulttext=newJTextField(50);String areatext= 课题信息: n 学号: 20102805n 姓名:李恩惠 n 班级:计算机 10-04n 题号: 22n 题目:多级文件目录 查询;JButton surebtn=new JButton(ok);JTextArea aboutarea=newJButton canclebtn=newJTextArea(areatext,20,30);JButton(cancel);/ 相关变量的定义JButton againbtn=newsta

12、tic String dirString;JButton(again);static StringdirList;JButton closebtn=new JButton(close);static int n;static int count;JPanel jpanel0=new JPanel();static String path;JPanel jpanel1=new JPanel();File f;JPanel jpanel2=new JPanel();Stringlist;String test;String message=;closebtn.setBounds(410,60,80

13、,20);tiplbl.setBounds(20,95,470,20);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,2

14、0);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);tiplbl.setForeground(Color.red);instrbtn.setBounds(20,135

15、,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(t

16、his); aboutbtn.addActionListener(this);/ 添加组件到 jpanel1 jpanel1.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(ins

17、trbtn);jpanel1.add(aboutbtn);/jpanel2 组件设置namelbl.setForeground(Color.blue);existlbl.setForeground(Color.blue);countlbl.setForeground(Color.blue);contentlbl.setForeground(Color.blue);/ 添加组件到 jpanel2 上 jpanel2.setLayout(newGridLayout(11,4,20,10);jpanel2.add(namelbl);jpanel2.add(existlbl); jpanel2.add

18、(countlbl); jpanel2.add(contentlbl);for(int i=0;i10;i+)for(intj=0;j3;j+)textij=new JTextField();btni=newJButton(btn+(i+1);btni.addActionListener(this);for(int i=0;i10;i+)for(intj=0;j3;j+)jpanel2.add(textij);jpanel2.add(btni);label.setIcon(image);/ 分隔框的设计js.setBorder(BorderFactory.createEtchedBorder(

19、);js.setDividerLocation(170);js.setDividerSize(20);js.setTopComponent(jpanel1);js.setBottomComponent(jpanel2);/ 显示到窗口jpanel0=(JPanel)getContentPane();jpanel0.add(js);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/ 对时间进行处理public void actionPerformed(ActionEvent e)String ss=e.getActi

20、onCommand(); if(ss.equals(ok) dirString=inputtext.getText(); dirList=dirString.split(); n=dirList.length; path=dirList0+;f=new File(path);for(int i=0;in;i+)texti0.setText(dirListi); if(f.exists()texti1.setText(yes); list=f.list();/count=f.filecount(path); count=list.length;texti2.setText(String.valu

21、eOf(count) );try path=path+dirListi+1;/ TODOAuto-generated catch blocke1.printStackTrace();f=new File(path);if(dirListn-1.contains(.)textn-12.setText( 数据文件 );elsetexti1.setText(no);texti2.setTex t(-);resulttext.setText( 文件 路径不正确! );File ff=newFile(inputtext.getText();if(ff.exists()resulttext.setText

22、( 恭喜你, 指定文件查找成功! );if(ss.equals(cancel)inputtext.setText();if(ss.equals(again)inputtext.setText();resulttext.setText(); catch (Exception e1) for(int i=0;i20;i+)for(intj=0;j3;j+)textij.setText();if(ss.equals(close)System.exit(0);for(int i=0;in;i+)if(ss.equals(btn+(i+1) path=dirList0+;for(intj=1;ji+1;

23、j+)path=path+dirListj; f=new File(path); test=f.list();for(int j=0;jtest.length;j+)message=message+t +testj;textarea.setText(message); textarea.setLineWrap(true);/ 超过设置的列数自动换行textarea.setEditable(false);/ 设置不可编辑message=;path=dirList0+;if(ss.equals(课题信息)JOptionPane.showMessageDialog(this,new JScrollP

24、ane(aboutarea);if(ss.equals(文件目录查询原理)JOptionPane.showMessageDialog(this,new JScrollPane(label);public static void main(Stringargs)new DirectorySearch( 目录查询演示实例 );JOptionPane.showMessageDialog(this, newJScrollPane(textarea);/ 加入滚动条课程设计感想:通过这次操作系统的课程设计,我对文件管理有了进一步的了解,在编 程的过程中遇到了很多问题,经过查找资料和api手册都得到了结局,对java的使用有了更深层的理解, 也总结了一些编程技巧,不过做出的程序的稳定性和健壮性方面还是 不够,对文件管理的设计还不够实用,对于遇到的这些问题,有待于在以后的学习和实 践中不断地改进。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!