文件系统设计报告.docx
文本预览下载声明
文件系统设计报告1152745 邱峰程序使用说明打开程序的初始界面。我的Q盘下提供右键格式化选项关于地址栏:如果是 我的Q盘/新建文件 会自动跳转到相应的文件夹下打开文件如果是我的Q盘/新建文件/ 是打开文件夹双击我的Q盘可以进入到里面(下面的文件与文件夹双击均可打开)右键空白地方会显示出相应的属性,图为建立了2个文件夹和一个文件的界面右击文件可显示与文件相关的操作下图为文件和文件夹的不同操作点击属性显示出一个文件夹或者文件的属性打开文件夹进入下一层目录,和我的Q盘下的目录相同代开文件,是自己编写的一个简易的记事本在设置菜单下可以更改字体大小,编辑菜单中有包括撤消、重做、和替换的功能。如果一个记事本已经被打开,然后又在外面点击删除时,会弹出警告框同样,删除该文件所在的文件夹也会有相应警告。如果一个记事本被打开,然后又在外面打开时,不会出现2个记事本,正在打开的记事本会重新获取用户焦点,也就是跳到第一个窗口。如果修改了文件,关闭时会提示你是否保存,当然也可以通过菜单栏文件下面的文件设置直接保存。程序设计图Ps:这个程序在设计上有一点失误,因此,设计图不是很好。程序共有Disk(我的Q盘)、Folder(文件夹)、MyFile(记事本)三个主要的类。MyDocument(FCB)抽象类:该类中提供一些函数的接口,以及文件属性主要的成员变量有class MyDocument{ContentPanel contentPanel;//文件夹下的内容(file不会被实例化)ContentPanel fatherContentPanel;//所在的文件夹String whoAmI;//文件or文件夹String fatherAddress;//所在文件夹的地址String name;//名字(fatherAddress+name=绝对地址)String createTime;//创建时间String visitTime;//访问时间String modifiTime;//修改时间Block block;//用的块(只是一个指针,不会在这里new)booleanisHide=false;//是否为隐藏文件}Folder类(文件夹)继承自MyDocument//contentPanel是运行哪个文件下的面板,比如在新建文件夹目录下,则界面显示的是新建文件夹.contentPanelclass ContentPanel{VectorFolder folderList;//该文件夹下的文件夹以这个构成目录VectorMyFile fileList;//该文件夹下的文件ContentPanel fatherContentPanel;//所在的文件夹staticbooleanisShowAll=false;//是否显示所有文件static ContentPanel runningPanel=null;//正在显示哪个文件夹}//FolderPanel是在上一层中显示的面板,比如需要进入到新建文件夹中,就需要双击这个面板,这个面板是被加入到fatherContentPanel中Class FolderPanel extends JPanel{……}//该类在内部处理后,以“打包”的形式在fatherContentPanel出现,返回的类的样子就是这样的,其中该panel提供一些双击以及右击查看属性的接口。MyFile类(文件)继承自MyDocument{JFrame frame//记事本FilePanel fileView; //和FolderPanel一样,打包出来是}Disk类(磁盘)不得不说。。这个类是设计最失败的地方。因为当初想的是我的Q盘只能有一个,所以该类所有的东西都是static{static JFrame mainFrame;//主要Framestatic JPanel mainPanel;//主要的Panelstatic DiskPanel diskPanel;//static ContentPanel contentPanel;//我的Q盘下的那个面板static Fat fat=new Fat();//fatstatic Block []block=new Block[1000];//所有的块都放入到我的Q盘中}设计失败之处就是因为把disk独立出来了。。。导致程序有许多地方都在特殊判断fatherContentPanel是不是Disk.ContentPanel。因此,加入了太多的补丁和重复代码。Block类(块){String property;//文件(夹)的一些属性String data;//文件(夹)数据intindex;//在Disk中是第几个block}Fat类{finalstaticinttotBlock=1
显示全部