模拟文件管理系统_第1页
模拟文件管理系统_第2页
模拟文件管理系统_第3页
模拟文件管理系统_第4页
模拟文件管理系统_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

操作系统课程设计工程三实验报告姓名:学号:学院:专业:指导教师:2014年*月*日工程三:文件系统一、教学内容模拟文件管理。设计并调试一个简单的文件系统,模拟文件操作命令的执行。深入了解主要文件操作命令的执行过程,掌握它们的根本实施方法。1.实现文件系统的根本功能设计一个支持n个用户的文件系统,每个用户可拥有多个文件。采用二级或二级以上的多级文件目录管理。对文件设置存取控制保护方式,如“只能执行”、“允许读”、“允许写”等。系统的外部特征应接近于真实系统,可以设置下述文件操作命令:建立文件、翻开文件、关闭文件、删除文件、读文件、写文件、复制文件、查询目录。通过键盘使用该文件系统,系统应当显示操作命令的执行结果。二、源程序与注释#include<stdio.h>//#include<string.h>#include<windows.h>#include<sys/stat.h>//文件属性#include<io.h>//文件常用库#include<direct.h>//创立删除目录voidmean(){printf("\t\t**********文件管理系统************\n");printf("\t\t1.创立目录\n");printf("\t\t2.删除目录\n");printf("\t\t3.创立文件\n");printf("\t\t4.设置权限\n");printf("\t\t5.写入文件\n");printf("\t\t6.读取文件\n");printf("\t\t7.删除文件\n");printf("\t\t8.复制文件\n");printf("\t\t9.翻开文件\n");printf("\t\t10.退出\n");printf("\t\t**********************************\n");}voidcreatecatalog(){inta;charname[10],choice;label:printf("请输入路径和目录名字例:C:/a\n");scanf("%s",name);getchar();a=mkdir(name);if(a==-1){printf("文件夹名相同\n");printf("重新输入?(Y/N)");scanf("%c",&choice);getchar();if(choice=='Y'||choice=='y')gotolabel;}else{printf("目录创立成功");printf("\n");}}voiddeletecatalog(){inta;charname[10],choice;label:printf("请输入要删除的目录路径和名字例:C:/a\n");scanf("%s",name);getchar();a=rmdir(name);if(a==-1){printf("目录不存在\n");printf("重新输入?(Y/N)");scanf("%c",&choice);getchar();if(choice=='Y'||choice=='y')gotolabel;}else{printf("目录删除成功");printf("\n");}}voidcreatefile(){inta;charname[10],choice;label:printf("请输入文件路径和名字");scanf("%s",name);getchar();//a=mkdir(name);a=creat(name,S_IWRITE);if(a==-1){printf("文件名相同\n");printf("重新输入?(Y/N)");scanf("%c",&choice);getchar();if(choice=='Y'||choice=='y')gotolabel;}else{printf("文件创立成功");printf("\n");}}/*voidopenfile(){FILE*fp;charname[10];printf("请输入要翻开的文件路径和名字");scanf("%s",name);getchar();if((fp=fopen(name,"r"))==NULL){printf("文件不存在\n");return;}elseprintf("翻开文件成功\n");}*/voidreadfile(){charch,name[10];FILE*fp;printf("请输入要读的文件路径和名字");scanf("%s",name);getchar();if((fp=fopen(name,"r"))==NULL){printf("文件不存在");return;}//openfile();ch=fgetc(fp);if(ch==EOF){printf("文本内容为空\n");}else{while(ch!=EOF){putchar(ch);ch=fgetc(fp);}printf("\n");fclose(fp);}}voiddeletefile(){FILE*fp;inta;charname[10],choice;label:printf("请输入要删除的文件路径和名字");scanf("%s",name);getchar();fp=fopen(name,"r");a=access(name,0);//获取文件状态if(a!=0){printf("文件不存在");printf("重新输入?(Y/N)");scanf("%c",&choice);getchar();if(choice=='Y'||choice=='y')gotolabel;}else{a=access(name,02);//#defineW_OK2if(a!=0){printf("文件为只读文件");}else{fclose(fp);unlink(name);//删除一个文件,假设成功那么返回0,否那么返回-1printf("删除文件成功\n");}}}voidwritefile(){FILE*fp;charch,name[10],choice;label:printf("请输入文件路径和名字");scanf("%s",name);getchar();if((fp=fopen(name,"w"))==NULL){printf("文件不存在或只能读");printf("重新输入?(Y/N)");scanf("%c",&choice);getchar();if(choice=='Y'||choice=='y')gotolabel;elsereturn;}//ch=getchar();printf("请输入文件内容,#结束");ch=getchar();while(ch!='#'){fputc(ch,fp);//putchar(ch);ch=getchar();}printf("文件内容输入成功\n");getchar();fclose(fp);}/*voidcopyfile()//复制文件操作{charname[20],name1[20],name2[20];printf("请输入被复制的文件名");scanf("%s",name);getchar();printf("请输入复制后的文件名");scanf("%s",name1);getchar();strcpy(name2,"copy");//windowsstrcat(name2,name);strcat(name2,"");strcat(name2,name1);system(name2);//系统调用dos指令getchar();}*/voidcopyfile(){FILE*fp=NULL;FILE*fp2=NULL;inta;charch,name[50],name2[50],choice;printf("请输入要被复制的文件路径和名字");scanf("%s",name);label:printf("请输入新文件路径和名字");scanf("%s",name2);getchar();a=creat(name2,0);chmod(name2,S_IWRITE);if(a==-1){printf("文件夹名相同\n");printf("重新输入?(Y/N)");scanf("%c",&choice);getchar();if(choice=='Y'||choice=='y')gotolabel;}fp=fopen(name,"r");//puts(name);puts(name2);if(fp)printf("....dddd");fp2=fopen(name2,"w");//printf("ll");if(fp2==0)printf("....");ch=fgetc(fp);//printf("kkk");while(ch!=EOF){//putchar(ch);fputc(ch,fp2);ch=fgetc(fp);}printf("复制文件成功");fclose(fp);fclose(fp2);printf("\n");}voidmodifyfile()/*修改文件权限*/{inta,x;charname[10],choice;label:printf("请输入要修改权限的文件名");scanf("%s",name);getchar();a=access(name,0);//获取文件的状态if(a!=0){printf("文件不存在\n");printf("重新输入?(Y/N)");scanf("%c",&choice);getchar();if(choice=='Y'||choice=='y')gotolabel;}else{printf("请选择:1--只读2--可写\n");while(1){scanf("%d",&x);if(x==1||x==2)break;elseprintf("输入错误!请重新选择");}if(x==1){a=chmod(name,S_IREAD);/*修改文件为"只读"*/printf("已经使<%s>只读\n",name);getchar();}elseif(x==2)/*修改文件为"只写"*/{a=chmod(name,S_IWRITE);printf("已经使<%s>可写\n",name);getchar();}}}voidopenfile(){inta;charname[10],name2[10],choice;label:printf("请输入要显示的目录");scanf("%s",name);/*显示目录操作*/getchar();a=access(name,0);if(a!=0){printf("目录不存在");printf("重新输入(Y/N)");scanf("%c",&choice);getchar();if(choice=='Y'||choice=='y')gotolabel;}else{printf("文件翻开成功,文件信息如下:\n");strcpy(name2,"dir");/*复制dir命令*/strcat(name2,name);printf("%s",name2);system(name2);/*系统调用*/}}voidmain(){label:mean();inti;printf("请选择:");scanf("%d",&i);switch(i){case1:system("cls");createcatalog();break;//创立文件目录case2:system("cls");deletecatalog();break;//删除文件目录case3:system("cls");createfile();break;//创立文件case4:system("cls");modifyfile();break;//修改文件权限case5:system("cls");writefile();break;//写文件case6:system("cls");readfile();break;//读文件case7:system("cls");deletefile();break;//删除文件case8:system("cls");copyfile();break;//复制文件case9:system("cls");openfile();break;case10:exit(0);//关闭文件//case12:system("cls");openf

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论