資源簡(jiǎn)介
① 根路徑為 ROOT。首次進(jìn)入模擬器時(shí),提示符為“ROOT>”,“>”左側(cè)為當(dāng)前路徑,可在“>”
后輸入下述各命令。
② 切換到當(dāng)前路徑下的某文件夾:cd 文件夾。如“cd music”,若當(dāng)前路徑下存在 music 文件
夾,則提示符變?yōu)椤爱?dāng)前路徑\music>”,若不存在,則提示。
③ 切換到當(dāng)前路徑的上級(jí)文件夾:cd ..。
④ 在任意路徑下切換回根路徑 ROOT:cd \。
⑤ 列出當(dāng)前路徑下的全部文件夾和文件:dir。
⑥ 在當(dāng)前路徑下新建文件夾:md 文件夾名稱。
⑦ 在當(dāng)前路徑下新建文件:mf 文件名稱。
⑧ 刪除當(dāng)前路徑下的某文件或文件夾(及其下所有文件夾及文件):del 文件或文件夾名稱。
后輸入下述各命令。
② 切換到當(dāng)前路徑下的某文件夾:cd 文件夾。如“cd music”,若當(dāng)前路徑下存在 music 文件
夾,則提示符變?yōu)椤爱?dāng)前路徑\music>”,若不存在,則提示。
③ 切換到當(dāng)前路徑的上級(jí)文件夾:cd ..。
④ 在任意路徑下切換回根路徑 ROOT:cd \。
⑤ 列出當(dāng)前路徑下的全部文件夾和文件:dir。
⑥ 在當(dāng)前路徑下新建文件夾:md 文件夾名稱。
⑦ 在當(dāng)前路徑下新建文件:mf 文件名稱。
⑧ 刪除當(dāng)前路徑下的某文件或文件夾(及其下所有文件夾及文件):del 文件或文件夾名稱。
代碼片段和文件信息
/********************************/
/*名稱:文件系統(tǒng)模擬器*/
/*作者:軟件162?朱程宇?3160704213*/
/*時(shí)間:2018.1.4*/
/********************************/
#include
#include
#include?
#include?
#include
using?namespace?std;
#define?MAX_DIR??5??????????????//最大目錄項(xiàng)的個(gè)數(shù)
#define?FILE?0??????????????????//結(jié)點(diǎn)代表為文件夾
#define?PAPER?1?????????????????//結(jié)點(diǎn)代表為文件
typedef?struct?FileNode{
char?name[20]; ????//目錄名稱
char?way[200];?
time_t?create_t; ????//創(chuàng)建時(shí)間
int?stat; //文件屬性
struct?FileNode?*?firstchild*?nextsibling;? //第一個(gè)孩子節(jié)點(diǎn)和第一個(gè)孩子節(jié)點(diǎn)的兄弟節(jié)點(diǎn)
}FileNode*File;????????????????//?結(jié)點(diǎn)別名,指向結(jié)點(diǎn)的指針別名
File?root;??????????????????????//根目錄
File?curr; ????????//當(dāng)前目錄的鏡像
File?p;?????????????????????????//當(dāng)前目錄的指針
File?user;??????????????????????//原始子目錄
File?text;
File?music;
File?path;??????????????????????//待使用的工具結(jié)構(gòu)體
File?T;
int?type;???????????????????????//新建文件類型
int?sen;
char?check[100];????????????????//命令寄存器
char?command[100];??????????????//第一部分命令
char?result[100];???????????????//第二部分命令
void?Initial()??????????????????//初始化系統(tǒng)和建立最初文件系統(tǒng)
{
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()????????????????????//退出系統(tǒng)
{
printf(“*****感謝使用*****\n“);
exit(0);
}
void?help()????????????????????//使用幫助
{
printf(“歡迎使用本系統(tǒng)!\n“);
printf(“使用幫助:\n“);
printf(“cd???切換到當(dāng)前路徑下的某文件夾。\n“);
printf(“cd..?切換到當(dāng)前路徑的上級(jí)文件夾。\n“);
printf(“cd?\\?在任意路徑下切換回根路徑?ROOT。\n“);
printf(“dir??列出當(dāng)前路徑下的全部文件夾和文件。\n“);
printf(“md???在當(dāng)前路徑下新建文件夾。\n“);
printf(“mf???在當(dāng)前路徑下新建文件。\n“);
printf(“exit?隨時(shí)退出系統(tǒng)。\n“);
printf(“del??刪除當(dāng)前路徑下的某文件或文件夾(及其下所有文件夾及文件)。\n\n“);
}
void?add(File?&aFile?&b)?????//變量直接賦值函數(shù)
{
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)????????//?//查找目標(biāo)目錄工具
{????????????????????????????//遍歷當(dāng)前節(jié)點(diǎn)的所有子孫節(jié)點(diǎn)找到目標(biāo)節(jié)點(diǎn)
??if(F==NULL)????????????????//判斷當(dāng)前結(jié)點(diǎn)是否為NULL
return?;????????????
??if(strcmp(F->waypath->way)==0)//判斷是否為目標(biāo)
評(píng)論
共有 條評(píng)論