• 大小: 266KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-16
  • 语言: 其他
  • 标签:

资源简介

模拟一个简单二级文件管理系统 设计目的:通过具体的文件存储空间的管理、文件的物理结构、目录结构和文件操作的实现,加深对文件系统内部功能和实现过程的理解。 设计内容:模拟一个简单二级文件管理系统

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#include 
#define MaxUser 100          //定义最大MDF主目录文件
#define MaxDisk 512*1024     //模拟最大磁盘空间
#define commandAmount 12     //对文件操作的指令数
//存储空间管理有关结构体和变量
char disk[MaxDisk];     //模拟512K的磁盘存储空间
typedef struct distTable  //磁盘块结构体
{
int maxlength;
int start;
int useFlag;
distTable *next;
}diskNode;
diskNode *diskHead;
struct fileTable    //文件块结构体
{
char fileName[10];
int strat;          //文件在磁盘存储空间的起始地址
int length;         //文件内容长度
int maxlength;      //文件的最大长度
char fileKind[3];   //文件的属性——读写方式
struct tm *timeinfo;
bool openFlag;       //判断是否有进程打开了该文件
//fileTable *next;
};

//两级目录结构体
typedef struct user_file_directory  //用户文件目录文件UFD
{
//char fileName[10];
fileTable *file;
user_file_directory *next;
}UFD;
//UFD *headFile;
typedef struct master_file_directory  //主文件目录MFD
{
char userName[10];
char password[10];
UFD *user;
}MFD;
MFD userTable[MaxUser];
int used=0;                             //定义MFD目录中用已有的用户数

//文件管理
void fileCreate(char fileName[]int lengthchar fileKind[]);        //创建文件
void fileWrite(char fileName[]);                    //写文件
void fileCat(char fileName[]);                    //读文件
void fileRen(char fileName[]char rename[]);        //重命名文件
void fileFine(char fileName[]);                   //查询文件
void fileDir(char UserName[]);                    //显示某一用户的所有文件
void fileClose(char fileName[]);                  //关闭已打开的文件
void fileDel(char fileName[]);                    //删除文件
void chmod(char fileName[]char kind[]);         //修改文件的读写方式
int requestDist(int &startPostionint maxLength); //磁盘分配查询
void initDisk();                                  //初始化磁盘
void freeDisk(int startPostion);                  //磁盘空间释放
void diskShow();                                  //显示磁盘使用情况

//用户管理
void userCreate();
int login();
int userID=-1;   //用户登录的ID号,值为-1时表示没有用户登录

int main()
{
char order[commandAmount][10];
strcpy(order[0]“create“);
strcpy(order[1]“rm“);
strcpy(order[2]“cat“);
strcpy(order[3]“write“);
strcpy(order[4]“fine“);
strcpy(order[5]“chmod“);
strcpy(order[6]“ren“);
strcpy(order[7]“dir“);
strcpy(order[8]“close“);
strcpy(order[9]“return“);
strcpy(order[10]“exit“);
strcpy(order[11]“df“);
char command[50]command_str1[10]command_str2[10]command_str3[5]command_str4[3];
int ikj;
int length;
initDisk();                     //初始化磁盘
for(i=0;i {
userTable[i].user=(UFD *)malloc(sizeof(UFD));
userTable[i].user->next=NULL;
}
while(1)
{
printf(“********************************************\n“);
printf(“                  1、Creat user\n“);
printf(“                  2、login\n“);
printf(“********************************************\n“);
printf(“Please chooce the function key:>“);
int choice;
scanf(“%d“&choice);
if(choice==1) userCreate();
else if(choice==2) u

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      16129  2010-04-21 16:15  二级文件管理系统\c.cpp

     文件       4235  2010-04-17 20:24  二级文件管理系统\cc.dsp

     文件        510  2010-04-17 18:46  二级文件管理系统\cc.dsw

     文件      58368  2010-04-21 16:15  二级文件管理系统\cc.ncb

     文件      48640  2010-04-21 16:15  二级文件管理系统\cc.opt

     文件        619  2010-04-21 16:15  二级文件管理系统\cc.plg

     文件      41757  2010-04-21 16:15  二级文件管理系统\Debug\c.obj

     文件     237620  2010-04-21 16:15  二级文件管理系统\Debug\cc.exe

     文件     301836  2010-04-21 16:15  二级文件管理系统\Debug\cc.ilk

     文件     238940  2010-04-19 21:50  二级文件管理系统\Debug\cc.pch

     文件     582656  2010-04-21 16:15  二级文件管理系统\Debug\cc.pdb

     文件      41984  2010-04-21 16:15  二级文件管理系统\Debug\vc60.idb

     文件      53248  2010-04-21 16:15  二级文件管理系统\Debug\vc60.pdb

     目录          0  2010-04-21 16:15  二级文件管理系统\Debug

     目录          0  2010-04-21 16:15  二级文件管理系统

----------- ---------  ---------- -----  ----

              1626542                    15


评论

共有 条评论