基于C#实现的文件管理文件系统

文件管理 - 文件系统

操作系统第三次课程作业 - 文件系统

请勿删除可执行程序目录下的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可执行文件进入文件系统模拟界面

基于C#实现的文件管理文件系统_第1张图片

  • 请详细阅读操作帮助了解模拟器功能, 点击我知道了关闭帮助信息窗口

  • 单击鼠标右键, 新建文件夹/新建文件

基于C#实现的文件管理文件系统_第2张图片

  • 您也可以点击右侧按钮进行创建文件夹/文本文件

基于C#实现的文件管理文件系统_第3张图片

  • 输入文件夹名或文件名, 即可在目录中查看到创建的文件夹/文件

基于C#实现的文件管理文件系统_第4张图片
基于C#实现的文件管理文件系统_第5张图片

  • 在文件夹/文件上点击鼠标右键可选择打开/删除

基于C#实现的文件管理文件系统_第6张图片

  • 单击文件夹可进入下一级文件夹, 上方可查看当前文件路径

基于C#实现的文件管理文件系统_第7张图片

  • 单击文件可打开编辑窗口, 编辑完成后点击右上角的X, 确定以保存, 取消则直接退出

基于C#实现的文件管理文件系统_第8张图片

  • 可查看文件相应信息(文件名, 上次修改日期, 文件大小*(自定义单位)*)

在这里插入图片描述

  • 左侧的目录树可点击展开, 以查看当前目录结构

基于C#实现的文件管理文件系统_第9张图片

  • 双击目录树中的文件夹打开文件夹, 双击目录树中的文件可打开文件进行浏览和编辑

  • 点击返回上级目录可跳转到上级文件夹, 在root文件夹时无法返回

在这里插入图片描述

  • 点击右侧格式化并再次确定可清空磁盘, 系统会清空所有文件夹和文本文件, 并清空目录树

基于C#实现的文件管理文件系统_第10张图片

  • 受展示限制, 本文件系统模拟器在一个目录下最多可创建8个子项目, 超过8个时会受到系统提醒*(只是受展示方式限制, 物理和逻辑上的存储理论上都允许创建无限多的子项目)*

基于C#实现的文件管理文件系统_第11张图片

系统分析

显示链接法

本文件系统中, 文件存储空间管理使用显示链接的方法,文件中的内容存放在磁盘不同的块中,每次创建文件时为文件分配数量合适的空闲块。每次写文件时按顺序将文件内容写在相应块中; 删除文件时将原先有内容的位置置为空即可。

位图、FAT表

磁盘空闲空间管理在位图的基础上进行改造,将存放磁盘上文件位置信息的FAT表与传统的位图进行结合,磁盘空闲的位置使用EMPTY = -1标识,放有文件的盘块存放文件所在的下一个盘块的位置,文件存放结束的盘块位置使用END = -2标识。

系统设计

界面设计

主界面MainForm

  • System.Windows.Forms.Button
  • System.Windows.Forms.Label
  • System.Windows.Forms.TextBox
  • System.Windows.Forms.TreeView
    基于C#实现的文件管理文件系统_第12张图片

帮助界面HelpForm

  • System.Windows.Forms.Label
  • System.Windows.Forms.Button
    基于C#实现的文件管理文件系统_第13张图片

记事本界面NoteForm

  • System.Windows.Forms.TextBox

基于C#实现的文件管理文件系统_第14张图片

功能实现截屏展示

帮助信息界面

基于C#实现的文件管理文件系统_第15张图片

新建文件/文件夹

基于C#实现的文件管理文件系统_第16张图片
基于C#实现的文件管理文件系统_第17张图片
基于C#实现的文件管理文件系统_第18张图片
基于C#实现的文件管理文件系统_第19张图片

打开/删除文件项

基于C#实现的文件管理文件系统_第20张图片

编辑文本文件

基于C#实现的文件管理文件系统_第21张图片

查看文件信息

在这里插入图片描述

展开目录树

基于C#实现的文件管理文件系统_第22张图片

返回上级目录

在这里插入图片描述

格式化磁盘

基于C#实现的文件管理文件系统_第23张图片

创建最大数量的文件项

受展示限制, 本文件系统模拟器在一个目录下最多可创建8个子项目, 超过8个时会受到系统提醒*(只是受展示方式限制, 物理和逻辑上的存储理论上都允许创建无限多的子项目)*
基于C#实现的文件管理文件系统_第24张图片

退出系统重新进入后恢复目录

基于C#实现的文件管理文件系统_第25张图片
基于C#实现的文件管理文件系统_第26张图片
基于C#实现的文件管理文件系统_第27张图片
基于C#实现的文件管理文件系统_第28张图片

你可能感兴趣的:(c#,开发语言,visual,studio,文件管理,文件系统)