简单的文件系统
- 能用模拟Terminal的形式进行读入写入
- 能使用以下指令
- format格式化、rm删除文件、create文件、write写文件、read读文件、open打开文件、close关闭文件、mkdir创建目录、rmdir删除文件夹
- 使用显示链接的形式
- 输入错误进行报错
源代码
代码长,其中定义的数据结构请在上述源代码
中获取
-
主函数
使用
FileSystem
封装整个系统,FileSystem
中又包含FAT
、FAT表
、内存Buffer
、文件记录FPCB
等类注意:为了方便,操作数固定要输入1个,而对于
format
操作没有操作数的,操作数任意写即可
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
/*
* @Author: MetaNetworks
* @Date: 2019-12-05 16:57:33
* @LastEditors: MetaNetworks
* @LastEditTime: 2019-12-05 18:11:48
* @Description: MetaNetworks' Code
*/
#include <iostream>
#include "file_system.h"
using namespace std;
int main(){
FileSystem fileSystem(1024);
string op,value,extra;
while (true){
printf("FileSystem: %s > ",fileSystem.getCurrentFolder().c_str());
cin>>op>>value;
if(op == "format"){
fileSystem.format();
}
else if(op == "rm"){
fileSystem.rm(value);
}
else if(op == "create"){
int length;
printf("File Length:");
cin>>length;
fileSystem.create(value,length);
}
else if(op == "write"){
printf("Input Content:");
cin>>extra;
fileSystem.write(value,extra);
}
else if(op == "read"){
fileSystem.read(value);
}
else if(op =="open"){
fileSystem.open(value);
}
else if(op == "close"){
fileSystem.close(value);
}
else if(op == "ls"){
fileSystem.ls();
}
else if(op =="mkdir"){
fileSystem.mkdir(value);
}
else if(op == "rmdir"){
fileSystem.rmdir(value);
}
else if(op == "cd"){
fileSystem.cd(value);
}
else if(op == "exit"){
break;
}
else{
fprintf(stderr,"\nUnknown Operator.\n");
}
cout<<endl;
}
return 0;
}