}
}
if(i>LIST_SIZE) { } while(1) { }
if(c=='n'||c=='N')
flagdir=(struct DIR *)(file+blocknum*BLOCK_SIZE); while(m!=LIST_SIZE) { }
strcpy(dir->list[i].fname,\ strcpy(dir->list[i].exname,\dir->list[i].fnum=0;
strcpy(flagdir->list[0].fname,\ strcpy(flagdir->list[0].exname,\
//要删除目录的DIR
//父目录DIR
if(strcmp(flagdir->list[m].fname,\{ } m++;
printf(\该目录下有子文件或者子目录,不能删除该目录\return 0;
printf(\是否确认?(Y/N)\cin>>c;
if((c=='y'||c=='Y')||(c=='n'||c=='N'))
break;
printf(\该文件夹下不存在%s\return 0;
blocknum=dir->list[i].fnum;
} /*
flagdir->list[0].fnum=0; strcpy(flagdir->list[1].fname,\strcpy(flagdir->list[1].exname,\flagdir->list[0].fnum=0; MAP->maplist[blocknum]=0; FAT->id[blocknum]=0; FAT->id[0]=FAT->id[0]+1; return 0;
*更改当前目录 */
int changedir(char *str) {
if(strcmp(\ {
blocknum=currentdir;
if(dir->list[0].fnum==dir->list[1].fnum) //根目录的特征 { }
currentdir=dir->list[1].fnum;
//改变当前目录指针
//去上层的目录地址
return 1;
//判断是不是上层目录
dir=(struct DIR *)(file+currentdir*BLOCK_SIZE); int i;
int blocknum;
string strflag; //为了改当前显示的代码
//当前目录位置
//temp的目录位置
struct DIR * flagdir,*dir;
flagdir=(struct DIR *)(file+currentdir*BLOCK_SIZE);
} /*
}
for(int j=0;j CURRENT=CURRENT.substr(0,(CURRENT.length()-strflag.length())-1); return 1; if(flagdir->list[j].fnum==blocknum) { } strflag=flagdir->list[j].fname; break; for(i=2;i if(i>LIST_SIZE) { } { } //子目录 if(strcmp(dir->list[i].fname,str)==0&&strcmp(dir->list[i].exname,\ currentdir=dir->list[i].fnum; break; printf(\找不到指定的目录%s\\n\return 0; CURRENT=CURRENT+str+\return 1; *创建文件 */ int create(char *str,int length) { templength=length; l=strlen(str); //取文件名 for(i=0;i printf(\文件名称过长\\n\ return 0; name[i]=str[i]; if(str[i+1]=='.') break; dir=(struct DIR *)(file+(currentdir)*BLOCK_SIZE); MAP=(struct map *)(file+(FATNUM+1)*BLOCK_SIZE); FAT=(struct fatid *)(file+BLOCK_SIZE); struct fatid * FAT; struct DIR *dir; struct map *MAP; //getfilename int i,j,l,t,k; //FAT的首块号 //文件的首块判断 int flag; char name[8]={0}; //文件名称 char exname[3]={0}; //文件扩展名 int templength; //temp文件长度 //去扩展名 j=0; i++; i++;//除去点 k=l-i; for(j=0;j for(i=2;i if(strcmp(dir->list[i].fname,name)==0&&strcmp(dir->list[i].exname,exname)==0) { } if(strcmp(dir->list[i].fname,\{ } break; printf(\改文件夹下,已经有同名文件\return 0; printf(\文件名称不能为空\\n\return 0; if(strcmp(name,\ if(str[i]=='\\0') i++; } break; exname[j]=str[i]; if(length>FAT->id[0]) { } printf(\文件超出磁盘容纳空间\\n\return 0;