基于javafx的模拟磁盘文件系统

            好久没写博客了,今天有空写写,讲讲之前的操作系统课程设计,模拟的磁盘文件管理系统,说到模拟,这里做的是用一个二进制文件来模拟磁盘,里面分磁盘块,这里我简单梳理题目,方便大家理解使用。(源代码下载

课程设计题目要求

总的需求:目录,文件的CRUD,要求树形结构,操作过程要模拟磁盘的存储过程;

1界面需求:

<1>要求有右键菜单

(1)系统的右键菜单:添加文件,添加目录

(2)文件的右键菜单:打开文件,删除文件,查看属性,修改属性(只读,可读写)

(3)目录的右键菜单:删除,打开目录

 

<2>系统要求:

(1)文件和目录的显示与操作和窗口类似。

(2)可以查看磁盘使用状况:磁盘块的使用情况(使用,未使用)

(3)界面友好:添加文件和目录时要有提示信息,

如文件名长度不超过3,不能包含“'$','。' ,'/'”字符

  2后台需求:

<1>用一个文件模拟磁盘,磁盘分128块,每块64字节大小。

<2>用FAT表维护磁盘的储存状况:哪块磁盘块使用了,哪块磁盘块为空。

<3>文件内容的存储和取出要和真实磁盘操作一致,即:设置缓冲区,一次

   存一块磁盘块,存满再申请下一块磁盘块。读取也是类似,取出文件内

   容时是一块一块磁盘块取的。

<4>构造目录和文件的树形结构,每个目录下只能有8个子项(文件,目录)

系统的概要设计

1前端模块
<1>系统模块

显示磁盘使用情况按钮,系统关闭按钮,原始根目录下的八个子项

双击磁盘使用按钮:弹出128块磁盘块使用图,使用比例图

双击关闭按钮:保存当前操作,退出程序

右键系统非文件,目录区域可弹出新建文件,新建目录

<2>文件模块

右键文件可弹出菜单:打开文件,修改属性,删除文件

打开文件:双击文件,点击右键菜单打开文件

编辑文件:和窗口类似,编辑完自动保存。

<3>目录模块

右键目录可弹出菜单:打开目录,删除目录

 打开目录:双击或者右键菜单

 目录内容:和窗口类似,显示目录下的所有子项(文件,目录)

 

2后台模块:
<1>文件模块:

文件格式:这里只是TXT

存储位置:初始化用一个文件模拟磁盘,利用其128块,每块64B,文件分块存储

FAT表:初始化:利用模拟磁盘的那个文件,前面2块128B是FAT表的内容

用大小为128的数组模拟128块,记录每个文件的分块。

空余:0,文件尾:255,正常:记录下一个文件块

 

<2>目录模块

限制:一个目录下面只能有8个子目录/ 8个子文件

要求:树形结构:利用父节点和附属资源


<3>磁盘模块:

根据文件,目录的分块头编号检索FAT表,检索空内存,从而模拟申请内存,利用对象流写入,用64B的数组模拟一块磁盘位,要先写满数组模拟缓冲,再写入磁盘文件

 

主程序的流程图

                        基于javafx的模拟磁盘文件系统


各程序模块之间的层次关系

                            基于javafx的模拟磁盘文件系统

用户使用说明

 哔哔了这么多,估计没卵用哈哈,还是看看怎么使用吧 
       我的资源文件中包括源代码(编辑器用的是想法)和程序的JAR包

使用环境:本程序是JAR包,所以需要的Java的的环境支撑,需要安装的Java的中,并设置双击的罐子即可打开运行本程序。

                

操作说明:

<1>用户第一次使用时,系统中是没有数据的,需要用户自己添加文件。

<2>操作类似的窗户,右键菜单可以新建文件,目录等。

<3>鼠标移到文件,目录上方时,右键可以弹出对应的菜单

<4>主界面上有一个关闭按钮,由于程序是全屏显示,如果用户要退出程序需要双击按钮,非正常退出数据会丢失。

<5>双击可编辑的文件,目录即可打开,进行编辑。

<6>用户下次打开程序时会自动读取上次保存的系统数据。

测试与运行结果

 好了我不装逼了,这篇博客是我的课程设计报告基于javafx的模拟磁盘文件系统,之前做这个
也花费了一个星期时间,想想不浪费自己的成果,让有需要的
同学可以酌情看看我写的烂代码,各取所需,下面是运行测试图

                                                                          主界面


                          基于javafx的模拟磁盘文件系统
                                                                                  新建文件
             基于javafx的模拟磁盘文件系统
             基于javafx的模拟磁盘文件系统
 

                                                                           删除文件


                              基于javafx的模拟磁盘文件系统

                                                                              打开文件

                               基于javafx的模拟磁盘文件系统

                                                                            修改属性

                                 基于javafx的模拟磁盘文件系统

                                   基于javafx的模拟磁盘文件系统

                                      基于javafx的模拟磁盘文件系统

                                                                               打开目录

                            基于javafx的模拟磁盘文件系统

                                                                  在目录中新建文件,目录

                                 基于javafx的模拟磁盘文件系统

                                                          查看磁盘变化

                             变化前的磁盘使用情况


                            基于javafx的模拟磁盘文件系统

                                         添加文件后,磁盘使用情况发生变化


                          基于javafx的模拟磁盘文件系统


                                             删除目录后,磁盘使用发生变化


                               基于javafx的模拟磁盘文件系统


   最后,还有其他功能,就不发了,等同学们自己去发现基于javafx的模拟磁盘文件系统,写博客好累人
                             基于javafx的模拟磁盘文件系统