操作系统实验(七)文件管理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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))

{

相关文档
最新文档