首页 > 编程知识 正文

在多级存储体系中(u盘文件系统怎么改)

时间:2023-05-06 10:58:05 阅读:74296 作者:4780

一、课程设计内容

在本课程的设计中,需要设计模拟的多用户多级目录的文件系统。 通过具体的文件存储空间管理、文件物理结构、目录结构和文件操作的实现,加深对文件系统内部功能和实现过程的理解。

二、课程设计要求和数据

1 .在内存中创建虚拟磁盘空间作为文件存储,并在其上实现多用户多目录文件系统。

2 .文件的物理结构可以采用显式链接或其他方法。

3 .磁盘空间管理可以选择位图或其他方法。 如果使用位图图形管理文件存储空间并使用显式链接分配,则可以将位图图形合并到FAT中。

4 .文件目录结构采用多用户多级目录结构,每个目录条目包含文件名、物理地址、长度等信息,也可以通过目录条目保护文件的读取和写入目录组织方式可以不使用索引节点方式,但使用索引节点时,难易度系数为1.2。

5 .设计更实用的用户界面,方便用户使用。 需要执行以下相关文件操作:

(1)登录(用户注册)

)2)系统初始化(生成文件卷,提供登录模块) )。

(3)创建文件: create

(4)打开文件:打开

)5)文件读取: read

(6)文件写入: write

)7)文件关闭:关闭

(8)删除文件: delete

(9)创建目录;创建子目录) mkdir

(10 )更改当前目录)光盘

(11 )文件清单) dir

(12 )结束: logout

一、设计思想说明1.1设计环境

a、编程语言: c

b、开发环境: DEV

c、操作系统: windows 10

1.2设计思想

1.2.1整体思路

此次课程设计是一个模拟多用户多级目录的文件系统,支持多用户注册、登录、注销,支持多级目录,文件按名称访问,支持文件的添加、删除、更改

整个项目的主要内容分为三个模块的开发。 一个是用户模块,两个是文件模块,三个是磁盘模块。

1.2.2用户模块

用户模块的内容主要包括管理员账户初始化、账户注册、登录认证、登录退出、账户删除、所有用户打印等功能。

使用帐户标头指针admin链接所有帐户,并为所有用户创建同名的用户文件夹。 将在此文件夹下执行所有文件操作。

用户指针包含用户名、用户密码、指向以下用户的指针以及指向帐户文件夹的指针:

1.2.3文件模块

文件模块的内容主要包括:创建文件(文件夹或文件)、创建文件索引节点、访问文件夹、读取文件、写入文件、删除文件、删除文件夹、上一个文件

使用树结构目录存储文件目录,使用孩子的同级链表法存储显示。

定义保存在下面的帐户文件夹标头指针admin_folder,该文件夹是实际上不存在所有用户文件夹的文件夹。 也就是说,admin_folder-child节点指向第一个用户文件夹root,而root的brother指向其他用户文件夹。

定义当前文件夹指针now_folder以指向当前文件夹。

树目录存储文件名、文件类型和索引节点,索引节点存储文件大小和文件磁盘上的第一个磁盘块编号等具体文件信息。

1.2.4磁盘模块

磁盘模块主要存储初始化磁盘、FAT表初始化、查找FAT中的可用磁盘块和打印位图等功能。

FAT表存储当前磁盘块号、下一个磁盘块号和位图,物理磁盘存储磁盘块号、块大小和存储内容。

用block[block_count]数组模拟磁盘,创建大的FAT[block_count]数组保存fat。

二、系统结构2.1结构联系

系统大致分为三层,最上层是用户层,包含对账户的操作等功能,只有登录后才能进行文件层的文件操作。 每个用户帐户都有一个用户文件夹。

文件层可以执行创建文件和读写删除文件等操作,但不允许删除根用户文件夹,树文件目录中只存储文件名和索引节点。

物理层存储磁盘的使用情况和文件内容,使用FAT显示链接文件,在FAT表中找到磁盘上的文件的块号,将文件内容读取到磁盘块中。

三.数据结构说明3.1 user_management

包含typedef struct mfd { //主文件目录、用户文件夹

字符串用户名称; //用户名

字符串密码; //用户密码

结构MFd下一步; //指向下一个用户的指针

TSD链接; //指向该用户的文件目录指针

(MFD;

3.2 file_management

typedef struct tsd { //树文件目录

字符串名称;

短类型; //文件类型、文件夹或文件

结构TSD father; //父节点指针

结构TSD池; //子节点

结构TSD * brother; //同级节点

索引

ES* indexes; //索引结点
}TSD;

typedef struct indexes{ //索引结点
short capabilities; //访问权
int size; //占用空间
int first_block; //文件物理地址(盘块号)
}INDEXES;

3.3 disk_management
typedef struct fat { //文件分配表
bool bitmap; //位示图
int id; //当前盘块号
int next_id; //下一个盘块号
}FAT;

typedef struct block { //磁盘
int id; //物理块号||盘块号
unsigned int s_BLOCK_SIZE;
string content; //存储内容
}BLOCK;

四、算法流程图

五、主要函数列表

六、 测试与分析

1.初始界面

2. 文件夹的创建和进入文件夹

3.创建文件和对文件的读写和删除文件

返回上一层目录和删除文件夹

打印目录

打印位示图

七、 用户使用说明

本系统内置一个管理员账号root,密码root,在初始界面登录或者进行账号管理。
登录系统后可以按照提示进行文件操作
create [file name] 创建文件
read [file name] 读文件
write [file name] 写文件
delete [file name] 删除文件
mkdir [dir name] 创建子文件夹
cd [dir name] 进入子文件夹
rd [dir name] 删除文件夹
dir 打印当前目录下文件
dir_all 打印所有文件
show 打印位示图
retreat 回退到上一级文件夹
logout 退出登录
help 提示

在账号管理时,可以按照提示输入对应的数字来选择操作

八、附录

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。