//开博题记: 接触编程两年多, 从没自己写过编程笔记, 偶尔会收藏些有用的文章, 但是都没整理过. 乱七八糟一大堆资料自己看起来也辛苦, 有必要把这些心得和资料整理记录下了, 留给自己以后查找, 也分享给各位学习者, 共同进步.
目标
- 设计一个简单的二级文件系统
- 实现下列命令(至少两个)
- DELETE 删除文件
- CLOSE 关闭文件
- READ 读文件(显示出读的文件的内容)
- WRITE 写文件(对原文件改写或添加内容,并显示修改后的文件内容)
概念
为了克服单级目录所存在的缺点, 可以为每一个用户建立一个单独的用户文件目录UFD(User File Directory). 这些文件目录具有相似的结构, 它由用户所有文件的文件控制块组成. 此外, 在系统中再建立一个主文件目录MFD(Master File Directory); 在主文件目录中,每个用户目录文件都占有一个目录项,其目录项中包括用户名和指向该用户目录文件的指针. 如下, 图中的主目录中示出了三个用户名,即Wang、Zhang和Gao.
实现方法
看到图片后我首先想到的是利用DataTable存数据的方法来模拟程序. 上图很显然可以做成一个表存用户信息, 一个表存文件信息. 文件信息表内通过外键约束辨别属于哪个用户的表, 这样就可以实现权限管理, 当前用户可以读写新建删除自己的文件, 只读其他用户创建的文件. 由于是模拟操作, 文件表内就直接保存文件名和文件内容, 所以表如下
User(user, password)
File(user, fileName, fileContent, fileTime)
有了表后, 我想实现的功能是首先一个界面, 用户可以登录或新建用户, 程序默认有一个超级管理员admin, 超级管理员可以操作所有用户的文件, admin不可删除以防用户删完后就不能操作文件. 登录后可以进行新建删除修改文件等操作, 关闭程序后, 数据保存到本地.
开发日志
第