# 文件管理 - 文件系统
###### 操作系统第三次课程作业 - 文件系统
请勿删除可执行程序目录下的`BitMapInfo.txt` ,`CategoryInfo.txt `, `MyDiskInfo.txt`, 及其他配置文件, 否则可能导致文件系统无法正常运行
-----
## 项目需求
### 基本任务
在内存中开辟一个空间作为文件存储器,在其上实现一个简单的文件系统。
退出这个文件系统时,需要该文件系统的内容保存到磁盘上,以便下次可以将其恢复到内存中来。
### 功能描述
- 文件存储空间管理可采取显式链接(如FAT)或者其他方法。(即自选一种方法)
- 空闲空间管理可采用位图或者其他方法。如果采用了位图,可将位图和FAT表合二为一。
- 文件目录采用多级目录结构。至于是否采用索引节点结构,自选。目录项目中应包含:文件名、物理地址、长度等信息。同学可在这里增加一些其他信息。
- 文件系统提供的操作:
- 格式化
- 创建子目录
- 删除子目录
- 显示目录
- 更改当前目录
- 创建文件
- 打开文件
- 关闭文件
- 写文件
- 读文件
- 删除文件
### 项目目的
- 熟悉文件存储空间的管理;
- 熟悉文件的物理结构、目录结构和文件操作;
- 熟悉文件系统管理实现;
- 加深对文件系统内部功能和实现过程的理解
## 开发环境
- **开发环境:** Windows 10
- **开发软件:**
**Visual Studio 2017** *15.9.28307.665*
- **开发语言:** C#
## 项目结构
```
│ BitMapInfo.txt
│ CategoryInfo.txt
│ FileManageSystem.exe
│ FileManageSystem.exe.config
│ FileManageSystem.pdb
│ MyControl.dll
│ MyControl.pdb
│ MyDiskInfo.txt
│ README.md
│ 文件管理系统_设计方案报告.md
│ 文件管理系统_设计方案报告.pdf
│
├─Resources
│ │ file18.png
│ │ file25.png
│ │ fileopen48.ico
│ │ folder18.png
│ │ folder25.png
│ │
│ └─icon
│ help.ico
│ icon.ico
│ note.ico
│
└─src
│ Category.cs
│ FCB.cs
│ Program.cs
│ VirtualDisk.cs
│
└─Form
├─HelpForm
│ HelpForm.cs
│ HelpForm.Designer.cs
│ HelpForm.resx
│
├─MainForm
│ MainForm.cs
│ MainForm.Designer.cs
│ MainForm.resx
│
└─NoteForm
NoteForm.cs
NoteForm.Designer.cs
NoteForm.resx
```
## 操作说明
- 双击目录下`FileManagementSystem.exe`可执行文件进入文件系统模拟界面
![](https://www.writebug.com/myres/static/uploads/2022/7/24/729b99628c0122d94a8f547ebf1aaa56.writebug)
- 请详细阅读**操作帮助**了解模拟器功能, 点击`我知道了`关闭**帮助信息窗口**
- 单击**鼠标右键**, 新建文件夹/新建文件
![](https://www.writebug.com/myres/static/uploads/2022/7/24/948797d16f7db2634e99b9e150000181.writebug)
- 您也可以点击**右侧按钮**进行创建文件夹/文本文件
![](https://www.writebug.com/myres/static/uploads/2022/7/24/c537927d28e1f03415d751dbee72fbc2.writebug)
- 输入文件夹名或文件名, 即可在目录中查看到创建的文件夹/文件
![](https://www.writebug.com/myres/static/uploads/2022/7/24/bd2d6262220ed90444b9b45bd356aa1f.writebug)
![](https://www.writebug.com/myres/static/uploads/2022/7/24/7ca67299bcfa2a423fb1a6c8656d7819.writebug)
- 在文件夹/文件上点击鼠标右键可选择打开/删除
![](https://www.writebug.com/myres/static/uploads/2022/7/24/e765fb3f6bcf4af40fbe4538c53a554b.writebug)
- **单击文件夹**可进入下一级文件夹, 上方可查看**当前文件路径**
![](https://www.writebug.com/myres/static/uploads/2022/7/24/d48471a98c828ebf30d28606c73efb8d.writebug)
- **单击文件**可打开**编辑窗口**, 编辑完成后点击右上角的`X`, *确定以保存, 取消则直接退出*
![](https://www.writebug.com/myres/static/uploads/2022/7/24/885250f4924c89f1a5ecb75215153734.writebug)
- 可查看**文件相应信息**(文件名, 上次修改日期, 文件大小*(自定义单位)*)
![](https://www.writebug.com/myres/static/uploads/2022/7/24/9d41c80fa5a98aa84cd694ae1e0ee5a7.writebug)
- 左侧的**目录树**可点击展开, 以查看当前目录结构
![](https://www.writebug.com/myres/static/uploads/2022/7/24/63b19aac4aed9c3371c78658542b4565.writebug)
- **双击目录树**中的文件夹打开文件夹, 双击目录树中的文件可打开文件进行浏览和编辑
- 点击**返回上级目录**可跳转到上级文件夹, 在root文件夹时无法返回
![](https://www.writebug.com/myres/static/uploads/2022/7/24/04ec8501134f1f40bafa79ddc99319a0.writebug)
- 点击右侧**格式化**并再次确定可清空磁盘, 系统会清空所有文件夹和文本文件, 并清空目录树
![](https://www.writebug.com/myres/static/uploads/2022/7/24/f697def0c276de6d8ace1130daf6cded.writebug)
- 受展示限制, 本文件系统模拟器在一个目录下最多可创建8个子项目, 超过8个时会受到系统提醒*<u>(只是受展示方式限制, 物理和逻辑上的存储理论上都允许创建无限多的子项目)</u>*
![](https://www.writebug.com/myres/static/uploads/2022/7/24/11835f89de16baee29be32551072e671.writebug)
## 系统分析
### 显示链接法
本文件系统中, 文件存储空间管理使用**显示链接**的方法,文件中的内容存放在磁盘不同的块中,每次创建文件时为文件分配数量合适的空闲块。每次写文件时按顺序将文件内容写在相应块中; 删除文件时将原先有内容的位置置为空即可。
### 位图、FAT表
磁盘空闲空间管理在**位图**的基础上进行改造,将存放磁盘上文件位置信息的**FAT表**与传统的位图进行结合,磁盘空闲的位置使用`EMPTY = -1`标识,放有文件的盘块存放文件所在的下一个盘块的位置,文件存放结束的盘块位置使用`END = -2`标识。
## 系统设计
### 界面设计
#### 主界面MainForm
- System.Windows.Forms.Button
- System.Windows.Forms.Label
- System.Windows.Forms.TextBox
- System.Windows.Forms.TreeView
![](https://www.writebug.com/myres/static/uploads/2022/7/24/73878b218dbca0cf7397a12519b9e04e.writebug)
#### 帮助界面HelpForm
- System.Windows.Forms.Label
- System.Windows.Forms.Button
![](https://www.writebug.com/myres/static/uploads/2022/7/24/3013ba8bb2aece806dd00ec3d5a61650.writebug)
#### 记事本界面NoteForm
- System.Windows.Forms.TextBox
![](https://www.writebug.com/myres/static/uploads/2022/7/24/66ca7a0c58e6ca751da0ce7cffd5f587.writebug)
### 类设计
#### 目录项FCB
```c#
//目录项
public class FCB
{
public string fileName; //文件名
public int start; //文件在内存中初始存放的位置
public int type; //文件类型 => TXTDILE/FOLDER
public string lastModify; //最近修改时间
public int size; //文件大小,文件夹不显示大小
public FCB() { }
public FCB(string name,int type, string time, int size)
{
this.fileName = name;
this.type = type;
this.lastModify = time;
this.size = size;
}
public FCB(string name, int type, string time, int size,int start)
{
this.fileName = name;
this.type = type;
this.lastModify = time;
this.size = size;
this.start = start;
}
}
```
#### 虚拟磁盘类
```c#
public class VirtualDisk
{
public int size;
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
功能描述 - 文件存储空间管理可采取显式链接(如FAT)或者其他方法。(即自选一种方法) - 空闲空间管理可采用位图或者其他方法。如果采用了位图,可将位图和FAT表合二为一。 - 文件目录采用多级目录结构。至于是否采用索引节点结构,自选。目录项目中应包含:文件名、物理地址、长度等信息。同学可在这里增加一些其他信息。
资源推荐
资源详情
资源评论
收起资源包目录
100011800-基于C#实现的(WinForm)文件系统(文件管理 ).zip (33个子文件)
file-system
CategoryInfo.txt 249B
工程文件整体(防丢失).rar 522KB
MyControl.pdb 24KB
FileManageSystem.exe 263KB
src
FCB.cs 1KB
Form
NoteForm
NoteForm.resx 104KB
NoteForm.Designer.cs 3KB
NoteForm.cs 3KB
HelpForm
HelpForm.Designer.cs 9KB
HelpForm.resx 104KB
HelpForm.cs 721B
MainForm
MainForm.resx 108KB
MainForm.Designer.cs 22KB
MainForm.cs 21KB
Category.cs 7KB
VirtualDisk.cs 5KB
Program.cs 509B
LICENSE 1KB
文件管理系统_设计方案报告.pdf 1.69MB
MyControl.dll 24KB
FileManageSystem.exe.config 184B
Resources
folder18.png 427B
file18.png 513B
folder25.png 457B
fileopen48.ico 9KB
icon
note.ico 66KB
help.ico 66KB
icon.ico 66KB
file25.png 639B
MyDiskInfo.txt 1000B
BitMapInfo.txt 1KB
FileManageSystem.pdb 62KB
README.md 43KB
共 33 条
- 1
资源评论
神仙别闹
- 粉丝: 2712
- 资源: 7668
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 用K210进行垃圾识别,通过串口发送不同信号给stm32,控制步进电机进行分类,并且语音播报.zip
- 基于Matlab 实现单径瑞利信道下,交织与卷积编码对误码率影响仿真
- 基于PCL的平面点云格网可视化程序代码
- DataSphereStudio是一个一站式数据应用程序开发和管理门户,涵盖数据交换、脱敏/清理、分析/挖掘、质量测量、可视化等
- python对mysql的操作
- 基于python opencv实现的图像上色源码+项目说明.7z
- 智能车相关外设模块,包含寻迹传感器、编码器、电机驱动、舵机、TFT彩屏、按键、蜂鸣器、无线通讯八个模块
- 可以使用的jdk8 离线镜像安装
- HBase总结.xmind
- 电子设计竞赛经验分享-选择适合的比赛,团队合作*题目分析等
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功