# FileManagementSystem
**Repository Path**: secretworld/FileManagementSystem
## Basic Information
- **Project Name**: FileManagementSystem
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2023-12-24
- **Last Updated**: 2023-12-24
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# FileManagementSystem
> 这个项目来自于广东工业大学的操作系统课程设计题目(多级文件系统-2)的实现
## 介绍
以下是该课设的题目要求:
### 题目
多级文件系统-2
### 指导老师
李敏老师
### 主要内容
要求设计一个模拟的多用户多级目录的文件系统。通过具体的文件存储空间的管理、文件的物理结构、目录结构和文件操作的实现,加深对文件系统内部功能和实现过程的理解
### 基本任务要求
* 在内存中开辟一个==虚拟磁盘空间==作为文件存储器,在其上实现一个==多用户多目录==的文件系统
* 文件物理结构可采用==连续结构==
* 磁盘空闲空间的管理选择==位示图==
* 文件目录结构采用多用户多级目录结构,每个目录项包含文件名、物理地址、长度等信息,还可以通过目录项实现对文件的读和写的保护
* 设计一个较实用的用户界面,方便用户使用。要求提供以下==相关文件操作==:
* 用户登录(login)
* 系统初始化(建文件卷、提供登录模块)
* 创建文件(create)
* 打开文件(open)
* 读取文件(read)
* 写入文件(write)
* 关闭文件(close)
* 删除文件(delete)
* 创建目录(建立子目录)(mkdir)
* 改变当前目录(cd)
* 列出文件目录(dir)
* 退出(logout)
* 系统必须可实际演示,选用程序设计语言:C++、C等
### 参考文献
[1] 计算机操作系统, 汤小丹等 ,西安电子科技大学出版社
[2] 操作系统实验指导书,傅秀芬,广东工业大学(自编)
[3] 计算机操作系统教程 ( 第二版 ), 张尧学、 史美林,清华大学出版社
[4] 现代操作系统,A.S.Tanenbaum 著,陈向群等译机械工业出版社
## 本系统的实现
> 下面仅做简略的介绍。更详细的系统设计、实现、测试请查看 `文件管理系统 操作系统课程设计.doc` 文件
### 编程语言
Java
### 实现的功能
实现的功能包括了上面“基本任务要求”中的所提到的所有相关文件操作。除此之外,还实现了:
* 文件路径解析
* 查看磁盘位示图
* 查看系统帮助列表
* 保存磁盘数据
* 加载磁盘数据
### 环境要求
JDK 8及以上、maven环境
### 注意事项
因为要保存磁盘数据,所以在运行文件系统并退出文件系统之后,会在项目文件夹的同级目录下生成一个 save 文件夹,里面会创建一个 disk.ser 文件用于保存文件系统的磁盘数据
## 改进方案
> 本项目在进行操作系统课设答辩的时候拿到了优(成绩等级有:优、良、中等、及格、不及格)
下面列出一些对该项目的改进方案,大家可参考并对其改进:
- [ ] 实现文件共享
- [ ] 实现对文件的存取保护
- [ ] 对磁盘碎片进行整理[1]
- [ ] 优化树形目录结构的数据结构
- [ ] 增设更多合理的文件操作[2]
[1] 在进行磁盘空间的分配时,本项目采用的是连续分配,这必然会导致产生很多磁盘碎片。优化的方法可以是;①定期对磁盘空间进行“紧凑”,这样可以将碎片合并成较大的磁盘空间; ②采用更优的磁盘空间分配方式,例如离散分配
[2] 还可以增设复制文件操作、剪切文件操作等更多合理的文件操作
## 最后
本项目仅供学习交流使用