return 1; }
/*---------在当前目录下删除文件-----------*/ int delfile(char *name) { int i,temp,j; //确保当前目录下有该文件,并且记录下它的FCB下标 struct dirFile *dir; //当前目录的指针 if(current == 2) dir=&(osPoint->root); else dir=(struct dirFile *)(osPoint->data [current-3]); for(i=1;i < BlockFcbCount;i++) //查找该文件 { if(dir->fcb[i].type==GENERAL && strcmp(dir->fcb[i].fname,name)==0){ break; } } if(i == BlockFcbCount){ printf(\当前目录下不存在该文件!\\n\ return 0; } int k; for(k=0;k
//从打开列表中删除 /*开始删除文件操作*/ temp=i; j = dir->fcb [temp].currentBlockNum ; //查找盘块号j osPoint->FAT1[j]=osPoint->FAT2[j]=0; //fat1,fat2表标记为空白 char *p=osPoint->data[j - 3]; memset(p,0,BlockSize); //清除原文本文件的内容 dir->fcb[temp].initialize(); //type=0; //标记该目录项为空文件 printf(\在当前目录下删除文件成功!\\n\ return 1; }
/*--------------进入当前目录下的子目录--------------*/ int changePath(char *sonfname) { struct dirFile *dir; //当前目录的指针 if(current==2) dir=&(osPoint->root); else dir=(struct dirFile *)(osPoint->data [current-3]); /*回到父目录*/ if(strcmp(sonfname,\ if(current==2){ printf(\你现已经在根目录下!\\n\ return 0; } current = dir->fcb[0].fatherBlockNum ; currentPath = currentPath.substr(0,currentPath.size() - strlen(dir->fcb[0].fname )-1); return 1; } /*进入子目录*///确保当前目录下有该目录,并且记录下它的FCB下标 int i,temp; for(i = 1; i < BlockFcbCount; i++){ //查找该文件 if(dir->fcb[i].type==DIRECTORY&&strcmp(dir->fcb[i].fname,sonfname)==0){ temp=i; break; } } if(i==BlockFcbCount){ printf(\不存在该目录!\\n\ return 0; }
//修改当前文件信息 current=dir->fcb [temp].currentBlockNum ; currentPath = currentPath+dir->fcb [temp].fname +\ printf(\进入当前目录下的子目录成功!\\n\ return 1; }
int exit(){//保存到磁盘上C:\\myfiles //将所有文件都关闭/*--------System exit---------------------*/ fp=fopen(FilePath,\ fwrite(BaseAddr,sizeof(char),DiskSize,fp); fclose(fp); //释放内存上的虚拟磁盘 free(osPoint); //释放用户打开文件表 delete openlist; printf(\退出文件系统成功!\\n\\n\ return 1; }
int write(char *name)/*-------------在指定的文件里记录信息---------------*/ { int i; char *startPoint,*endPoint; //在打开文件列表中查找 file(还需要考虑同名不同目录文件的情况!!!) for(i=0;i
startPoint = osPoint->data[fileStartNum]; endPoint = osPoint->data[fileStartNum + 1]; printf(\请输入文本以Ctrl D号结束:\\t\ char input; while(((input=getchar())!=4)) { if(startPoint < endPoint-1) { *startPoint++ = input; } else{ printf(\达到单体文件最大容量!\ *startPoint++ = 4; break; } } return 1; }
int read(char *file)/*---------选择一个打开的文件读取信息----------*/ { int i,fileStartNum; char *startPoint,*endPoint; //struct dirFile *dir; //在打开文件列表中查找 file(还需要考虑同名不同目录文件的情况!!!) for(i=0;i
while((*startPoint)!=4&& (startPoint < endPoint)){ putchar(*startPoint++); } printf(\ return 1; }
int open(char *file)//打开文件/*当前目录下添加一个打开文件*/ { int i,FcbIndex; //确保没有打开过该文件 = 相同名字 + 相同目录 for(i=0;i
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库简单文件系统的实现实验报告(3)在线全文阅读。
相关推荐: