操作系统实验(七)文件管理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验七文件管理(磁盘中创建和删除文件夹)
姓名:蒙吉学号:20072411603 指导老师:曹玉林
实验目的:1)了解磁盘的物理组织。
2)掌握windows系统提供的有关对磁盘操作的函数。
3)根据输入的扇区号读/写指定扇区。
实验准备知识:需要了解已经学过的VC++工程文件的运行步骤以及它的操作界面常用的设置方法。
实验内容:在已做过的实验五、六的基础上编写一个程序,分别完成如下功能。
1)有个help帮助提示。
2)查看位示图。
3)在目录文件中创建子目录。
4)根据当前目录切换到指定目录。
5)搜索所要删除的目录是否为空目录,若是则删除。
6)在当前目录中创建文件名称。
7)搜索所要删除的文件是否存在,若是则删除。
8)列出当前目录的所有目录项,退出程序等。
实验要求:
深入理解操作系统设备当作文件处理的特性。
参考源代码:
// wjgl.cpp: implementation of the wjgl class. //
/////////////////////////////////////////////////////////////////// ///
#include "wjgl.h"
/////////////////////////////////////////////////////////////////// ///
// Construction/Destruction
/////////////////////////////////////////////////////////////////// ///
wjgl::wjgl()
{
hang=16;
lie=16;
int j,k;
//cout<<"矩阵的行"< //cin>>hang; //cout<<"矩阵的列"< //cin>>lie; srand(time(NULL)); for(j=0;j { juzhen[0][j]=1; } for(j=1;j { for(k=0;k juzhen[j][k]=(rand()%2); } cout<<"当前没有任何目录和文件,系统为你自动进入C:,如需帮助请选择H"< ml=(mulu *)malloc(sizeof(mulu)); zhizhen=(mulu *)malloc(sizeof(mulu)); zhizhen=ml; strcpy(ml->name,"C"); ml->awenjian=NULL; ml->top=NULL; ml->next=NULL; ml->amulu=NULL; } wjgl::~wjgl() { } int wjgl::cd() { node1 *s; node1 *r; r=(node1 *)malloc(sizeof(node1)); s=(node1 *)malloc(sizeof(node1)); s=ml; r=zhizhen; char mlname[20]; cin>>mlname; if(!strcmp(mlname,"..")) { if(zhizhen->top==NULL) { cout<<"不存在该目录的根目录"< return 0; } else { zhizhen=zhizhen->top; } // showweizhi(); return 0; } else { r=r->amulu; while(r!=NULL) { if(!strcmp(r->name,mlname)) { zhizhen=r; //showweizhi(); return 0; } else { if(r->next==NULL) break; r=r->next; } } } cout<<"目录不存在"< return 0; } int wjgl::mk() { struct tm *newtime; char *tmpbuf=new char[120]; time_t lt; time(<); newtime=localtime(<); strftime(tmpbuf,128,"%c",newtime); //showweizhi(); node *s; s=(node *)malloc(sizeof(node)); s=zhizhen->awenjian; node *s1; s1=(node *)malloc(sizeof(node)); //cout<<"请输入文件的名称"< char fname[20]; cin>>fname; //cout<<"请输入文件的大小"< int daxiao; cin>>daxiao; strcpy(s1->name,fname); s1->daxiao=daxiao; s1->next=NULL; if(s==NULL) { zhizhen->awenjian=s1; s1->time=tmpbuf; // cout<<"文件创建成功"< //return 0; } else if(!strcmp(s->name,fname)) { cout<<"文件名字重复"< return 0; } else { while(s->next!=NULL) { if(!strcmp(s->next->name,fname)) {