本项目致力于在Linux环境下构建一个高效的模拟文件系统,旨在研究和优化文件存储机制,提升数据处理效率,并为用户提供灵活的操作体验。
设计内容:
1. 设计一个包含10个用户的文件系统。每个用户最多可以保存10个文件,并且在一次运行过程中可同时打开多个文件。
2. 程序采用二级目录结构,包括主目录(MFD)和用户个人文件目录(UFD)。此外,支持设置指针来访问已打开的文件。
3. 为了简化实现过程,在执行读写操作时仅需更改相应的读写指针,并不进行实际的数据传输或修改。
4. 实现的基本功能包括:改变当前工作路径命令(CD),创建目录(MD)、显示内容(DIR)、删除目录(RD)、打开所有文件(openall)、打开单个文件(open), 创建新文件(create), 删除一个已存在的文件(delete),写入数据(write),读取数据(read), 更改保护权限(change),退出程序(exit等)。
要求:
- 应考虑各种特殊情况,例如:各命令支持全路径和相对路径;当指定的目录或文件不存在时显示错误信息;
- 禁止使用cd进入文件夹内的文件、不允许在任何命令中输入空格(如 ex it),需要给出相应的提示信息;
- 解析并处理相对路径中的问题,自动去除路径名称中的空白字符。
- 在创建新的目录或者文件的时候要检查重名情况,并且限制名字长度和允许使用的特殊符号范围。
- 删除操作时需考虑目录或文件是否存在、是否为空等问题;如果删除的不是空目录,则应给出确认提示并告知会一并移除该目录下的所有内容;
- 当试图从一个子目录中删除当前所在或者更上层的任何层级时,系统应该阻止这种行为。
- 禁止使用delete命令来直接删除整个文件夹;不允许通过RD指令来尝试删除单一数据项。