2022年操作系统实验文件管理 .pdf

上传人:Q****o 文档编号:27177808 上传时间:2022-07-22 格式:PDF 页数:13 大小:444.72KB
返回 下载 相关 举报
2022年操作系统实验文件管理 .pdf_第1页
第1页 / 共13页
2022年操作系统实验文件管理 .pdf_第2页
第2页 / 共13页
点击查看更多>>
资源描述

《2022年操作系统实验文件管理 .pdf》由会员分享,可在线阅读,更多相关《2022年操作系统实验文件管理 .pdf(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、- 1 - 实验七文件管理(磁盘中创建和删除文件夹)姓名:蒙吉学号: 20072411603 指导老师:曹玉林实验目的: 1)了解磁盘的物理组织。2)掌握 windows 系统提供的有关对磁盘操作的函数。3)根据输入的扇区号读/写指定扇区。实验准备知识: 需要了解已经学过的VC+ 工程文件的运行步骤以及它的操作界面常用的设置方法。实验内容: 在已做过的实验五、六的基础上编写一个程序,分别完成如下功能。1) 有个 help 帮助提示。2) 查看位示图。3) 在目录文件中创建子目录。4) 根据当前目录切换到指定目录。5) 搜索所要删除的目录是否为空目录,若是则删除。6) 在当前目录中创建文件名称。

2、7) 搜索所要删除的文件是否存在,若是则删除。8) 列出当前目录的所有目录项,退出程序等。实验要求:深入理解操作系统设备当作文件处理的特性。参考源代码:/ wjgl.cpp: implementation of the wjgl class. / / #include wjgl.h / / Construction/Destruction / wjgl:wjgl() hang=16; lie=16; int j,k; /cout 矩阵的行 hang; /cout 矩阵的列 lie; srand(time(NULL); for(j=0;jlie;j+) juzhen0j=1; for(j=1;j

3、hang;j+) for(k=0;klie;k+) juzhenjk=(rand()%2); cout 当前没有任何目录和文件,系统为 你 自 动 进 入C: , 如 需 帮 助 请 选 择Hname,C); ml-awenjian=NULL; ml-top=NULL; ml-next=NULL; ml-amulu=NULL; wjgl:wjgl() int wjgl:cd() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 13 页 - - - - - - - - -

4、- 2 - node1 *s; node1 *r; r=(node1 *)malloc(sizeof(node1); s=(node1 *)malloc(sizeof(node1); s=ml; r=zhizhen; char mlname20; cinmlname; if(!strcmp(mlname,.) if(zhizhen-top=NULL) cout 不存在该目录的根目录top; / showweizhi(); return 0; else r=r-amulu; while(r!=NULL) if(!strcmp(r-name,mlname) zhizhen=r; /showweiz

5、hi(); return 0; else if(r-next=NULL) break; r=r-next; cout目录不存在 awenjian; node *s1; s1=(node *)malloc(sizeof(node); /cout 请输入文件的名称fname; /cout 请输入文件的大小daxiao; strcpy(s1-name,fname); s1-daxiao=daxiao; s1-next=NULL; if(s=NULL) zhizhen-awenjian=s1; s1-time=tmpbuf; / cout文件创建成功name,fname) cout文件名字重复next

6、!=NULL) if(!strcmp(s-next-name,fname) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 13 页 - - - - - - - - - - 3 - cout文 件名字 重复next; s-next=s1; int i,j,k; k=0; int i1=-1; int j1=-1; for(i=0;ihang;i+) for(j=0;jbegin=i*lie+j+1; if(daxiao=1) juzhenij=-1; s1-time=tm

7、pbuf; return 0; else i1=i; j1=j; k+; continue; else if(daxiao-k=1) juzheni1j1=i*lie+j+1; juzhenij=-1; s1-time=tmpbuf; return 0; juzheni1j1=i*lie+j+1; i1=i; j1=j; k+; s1-next=NULL; s1-time=tmpbuf; return 0; void wjgl:showweizhi() cout.setf(3); char dizhi2010; int i=0; int j; node1 *s; node1 *r; r=(no

8、de1 *)malloc(sizeof(node1); s=(node1 *)malloc(sizeof(node1); r=zhizhen; s=r-top; strcpy(dizhii,r-name); i+; /coutname; while(s!=NULL) strcpy(dizhii,s-name); /coutname; s=s-top; i+; for(j=i;j0;j-) coutdizhij-1; if(i=j) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3

9、页,共 13 页 - - - - - - - - - - 4 - cout:; else cout; cout; int wjgl:rd() showweizhi(); node1 *r; r=(node1 *)malloc(sizeof(node1); r=zhizhen-amulu; cout 输 入 要 删 除 的 目 录 的 名 字ming; if(r=NULL) cout 目录不存在 name,ming) if(r-amulu!=NULL|r-awenjian!=NULL) cout 目 录 不 空 不 能 删 除amulu=r-next; /cout 删除成功 next!=NULL

10、) if(!strcmp(r-next-name,ming) if(r-next-amulu!=NULL|r-next-awenjian!=NULL) cout 目录不空不能删除next=r-next-next; /cout 删除成功 endl; return 0; cout 目录不存在 amulu; char ming20; cinming; if(r=NULL) node1 *s; s=(node1 *)malloc(sizeof(node1); s-time=tmpbuf; strcpy(s-name,ming); s-awenjian=NULL; s-amulu=NULL; s-nex

11、t=NULL; s-top=zhizhen; zhizhen-amulu=s; else if(!strcmp(r-name,ming) cout目录已经存在next!=NULL) if(!strcmp(r-next-name,ming) cout 目 录 已 经 存 在next; node1 *s; s=(node1 *)malloc(sizeof(node1); s-time=tmpbuf; strcpy(s-name,ming); s-awenjian=NULL; s-amulu=NULL; s-next=NULL; s-top=zhizhen; r-next=s; / cout创建成功

12、 awenjian; / cout请输入文件的名称ming; int i,j; int temp; if(s=NULL) cout 删除不成功 name,ming) i=(s-begin-1)/lie; j=(s-begin-1)%lie; while(juzhenij!=-1) temp=juzhenij; juzhenij=0; i=(temp-1)/lie; j=(temp-1)%lie; juzhenij=0; zhizhen-awenjian=s-next; cout删除成功 next!=NULL) if(!strcmp(s-next-name,ming) i=(s-begin-1)

13、/lie; j=(s-begin-1)%lie; while(juzhenij!=-1) temp=juzhenij; juzhenij=0; i=(temp-1)/lie; j=(temp-1)%lie; juzhenij=0; s-next=s-next-next; / cout 删除成功 endl; return 0; cout 文件不存在不能删除endl; return 0; void wjgl:tree() char c=getchar(); if(c= ) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理

14、 - - - - - - - 第 5 页,共 13 页 - - - - - - - - - - 6 - jiansuo(); else shuchu(zhizhen); void wjgl:showweishitu() /cout.width(); int j,k; cout位 示图为 endl; for(j=0;jhang;j+) for(k=0;klie;k+) coutsetiosflags(ios_base:left)setw(4)juzhenjk; coutamulu; cout . ; showweizhi(); couttop; if(zhizhen=NULL) ; else c

15、out . ; showweizhi(); coutendl; zhizhen=r1; while(r!=NULL) i+; couttime name next; node *s; s=(node *)malloc(sizeof(node); s=sc-awenjian; while(s!=NULL) j+; k=k+s-daxiao; couttime name 大小 daxiao next; cout 当 前 共 有 目 录 i个endl; cout 当前共有文件j 个总大小为 :kendl; int count=0; for(j=0;jhang;j+) for(k=0;klie;k+)

16、 if(juzhenjk=0) count+; cout 剩余 countendl; void wjgl:jiansuo() int k=0; int i=0; int j=0; char name20; / cout 请输入名称 name; int temp1=strlen(name); mulu *r; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 13 页 - - - - - - - - - - 7 - r=(node1 *)malloc(sizeof(node1

17、); r=zhizhen-amulu; node *s; s=(node *)malloc(sizeof(node); s=zhizhen-awenjian; while(r!=NULL) if(panduan(name,r-name)=1) i+; couttime name ; showweizhi(); coutnext; while(s!=NULL) if(panduan(name,s-name)=1) j+; couttime name 大 小daxiao daxiao; showweizhi(); coutnext; cout目录 i 个 endl; cout 文 件 j 个总 大

18、 小 为kendl; int count=0; for(j=0;jhang;j+) for(k=0;klie;k+) if(juzhenjk=0) count+; cout剩余 countendl; int wjgl:panduan(char a, char b) int biaoji=0; if(!strcmp(a,b) return 1; int temp=strlen(a); int temp1=strlen(b); int i,j; for(i=0,j=0;itemp&jtemp1) return 0; return 1;*/ #include #includewjgl.h using

19、 namespace std; void menu() coutH-helpendl; coutS -查看位示图 endl; coutMD-在目录文件中创建子目录endl; coutCD-根据当前目录切换到指定目录endl; coutRD-搜索所要删除的目录是否为空目录,若是则删除endl; coutMK-在当前目录中创建文件名称endl; coutDEL-搜索所要删除的文件是否存在,若是则删除endl; coutDIR-列出当前目录的所有目录项endl; coutE-退出程序 endl; int main() wjgl awjgl; /menu(); while(1) awjgl.showw

20、eizhi(); /cout 请选择操作 xuanxiang; if(!strcmp(xuanxiang,H)|!strcmp(xuanxiang,h) menu(); if(!strcmp(xuanxiang,MD)|!strcmp(xuanxiang,md) awjgl.md(); else if(!strcmp(xuanxiang,CD)|!strcmp(xuanxiang,cd) awjgl.cd(); else if(!strcmp(xuanxiang,RD)|!strcmp(xuanxiang,rd) awjgl.rd(); 名师资料总结 - - -精品资料欢迎下载 - - - -

21、 - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 13 页 - - - - - - - - - - 9 - else if(!strcmp(xuanxiang,MK)|!strcmp(xuanxiang,mk) awjgl.mk(); else if(!strcmp(xuanxiang,DEL)|!strcmp(xuanxiang,del) awjgl.del(); else if(!strcmp(xuanxiang,DIR)|!strcmp(xuanxiang,dir) awjgl.tree(); else if(!strcm

22、p(xuanxiang,s)|!strcmp(xuanxiang,S) awjgl.showweishitu(); else if(!strcmp(xuanxiang,E)|!strcmp(xuanxiang,e) return 0; return 0; 实验步骤: 1)两个 CPP 文件内容。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 13 页 - - - - - - - - - - 10 - 2)通过按 H 进入操作帮助提示。名师资料总结 - - -精品资料欢迎下

23、载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 13 页 - - - - - - - - - - 11 - 3)通过按 S 查看位示图。3)在目录文件中创建子目录mengji。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 13 页 - - - - - - - - - - 12 - 4)按CD 从当前目录中换到已创建的mengji 文件夹中,在mengji 文件夹中再建一个20072

24、411603 文件夹,以及删除文件。5)查看文件夹中的所有目录项。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 13 页 - - - - - - - - - - 13 - 6)退出实验总结: 通过这次实验在实验五和六的基础上,对操作系统文件管理的中查看位示图;在目录文件中创建子目录;根据当前目录切换到指定目录;搜索所要删除的目录是否为空目录,若是则删除;在当前目录中创建文件名称;搜索所要删除的文件是否存在,若是则删除;列出当前目录的所有目录项;退出程序等的操作方法有了一定的认识。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 13 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁