资源简介
① 根路径为 ROOT。首次进入模拟器时,提示符为“ROOT>”,“>”左侧为当前路径,可在“>”
后输入下述各命令。
② 切换到当前路径下的某文件夹:cd 文件夹。如“cd music”,若当前路径下存在 music 文件
夹,则提示符变为“当前路径\music>”,若不存在,则提示。
③ 切换到当前路径的上级文件夹:cd ..。
④ 在任意路径下切换回根路径 ROOT:cd \。
⑤ 列出当前路径下的全部文件夹和文件:dir。
⑥ 在当前路径下新建文件夹:md 文件夹名称。
⑦ 在当前路径下新建文件:mf 文件名称。
⑧ 删除当前路径下的某文件或文件夹(及其下所有文件夹及文件):del 文件或文件夹名称。
后输入下述各命令。
② 切换到当前路径下的某文件夹:cd 文件夹。如“cd music”,若当前路径下存在 music 文件
夹,则提示符变为“当前路径\music>”,若不存在,则提示。
③ 切换到当前路径的上级文件夹:cd ..。
④ 在任意路径下切换回根路径 ROOT:cd \。
⑤ 列出当前路径下的全部文件夹和文件:dir。
⑥ 在当前路径下新建文件夹:md 文件夹名称。
⑦ 在当前路径下新建文件:mf 文件名称。
⑧ 删除当前路径下的某文件或文件夹(及其下所有文件夹及文件):del 文件或文件夹名称。
代码片段和文件信息
/********************************/
/*名称:文件系统模拟器*/
/*作者:软件162 朱程宇 3160704213*/
/*时间:2018.1.4*/
/********************************/
#include
#include
#include
#include
#include
using namespace std;
#define MAX_DIR 5 //最大目录项的个数
#define FILE 0 //结点代表为文件夹
#define PAPER 1 //结点代表为文件
typedef struct FileNode{
char name[20]; //目录名称
char way[200];
time_t create_t; //创建时间
int stat; //文件属性
struct FileNode * firstchild* nextsibling; //第一个孩子节点和第一个孩子节点的兄弟节点
}FileNode*File; // 结点别名,指向结点的指针别名
File root; //根目录
File curr; //当前目录的镜像
File p; //当前目录的指针
File user; //原始子目录
File text;
File music;
File path; //待使用的工具结构体
File T;
int type; //新建文件类型
int sen;
char check[100]; //命令寄存器
char command[100]; //第一部分命令
char result[100]; //第二部分命令
void Initial() //初始化系统和建立最初文件系统
{
root=(FileNode *)malloc(sizeof(FileNode));
curr=(FileNode *)malloc(sizeof(FileNode));
user=(FileNode *)malloc(sizeof(FileNode));
text=(FileNode *)malloc(sizeof(FileNode));
music=(FileNode *)malloc(sizeof(FileNode));
path=(FileNode *)malloc(sizeof(FileNode));
T=(FileNode *)malloc(sizeof(FileNode));
strcpy(root->name“ROOT“);
strcpy(root->way“ROOT“);
root->create_t=time(NULL);
root->stat=0;
root->firstchild=user;
root->nextsibling=NULL;
strcpy(user->name“user“);
strcpy(user->way“ROOT\\user“);
user->create_t=time(NULL);
user->stat=0;
user->firstchild=NULL;
user->nextsibling=text;
strcpy(text->name“text“);
strcpy(text->way“ROOT\\text“);
text->create_t=time(NULL);
text->stat=0;
text->firstchild=NULL;
text->nextsibling=music;
strcpy(music->name“music“);
strcpy(music->way“ROOT\\music“);
music->create_t=time(NULL);
music->stat=0;
music->firstchild=NULL;
music->nextsibling=NULL;
}
void exit() //退出系统
{
printf(“*****感谢使用*****\n“);
exit(0);
}
void help() //使用帮助
{
printf(“欢迎使用本系统!\n“);
printf(“使用帮助:\n“);
printf(“cd 切换到当前路径下的某文件夹。\n“);
printf(“cd.. 切换到当前路径的上级文件夹。\n“);
printf(“cd \\ 在任意路径下切换回根路径 ROOT。\n“);
printf(“dir 列出当前路径下的全部文件夹和文件。\n“);
printf(“md 在当前路径下新建文件夹。\n“);
printf(“mf 在当前路径下新建文件。\n“);
printf(“exit 随时退出系统。\n“);
printf(“del 删除当前路径下的某文件或文件夹(及其下所有文件夹及文件)。\n\n“);
}
void add(File &aFile &b) //变量直接赋值函数
{
a->create_t=b->create_t;
a->firstchild=b->firstchild;
strcpy(a->nameb->name);
a->nextsibling=b->nextsibling;
a->stat=b->stat;
strcpy(a->wayb->way);
}
void Research(File F) // //查找目标目录工具
{ //遍历当前节点的所有子孙节点找到目标节点
if(F==NULL) //判断当前结点是否为NULL
return ;
if(strcmp(F->waypath->way)==0)//判断是否为目标
- 上一篇:c语言超市管理系统-大学c语言课程设计优秀作品
- 下一篇:C++语言标准化考试系统
评论
共有 条评论