资源简介
简单的实现操作系统文件管理系统,能实现文件的或目录的增加,删除,修改名字,查找,工作目录的改变等简单的文件功能,很好用,欢迎下载。
代码片段和文件信息
#include
#include
#include
#include
using namespace std;
// ******************目录和文件的结构定义******
typedef struct node
{
char name[50]; /*目录或文件的名字*/
int type; /*0代表目录,1代表普通文件*/
struct node *next; /*指向下一个兄弟结点的指针*/
struct node *sub; /*指向第一个子结点的指针*/
struct node *father; /*指向父结点的指针*/
int size; /*如果是文件则表示文件的大小*/
} dirNode;
dirNode *workDir; //定义当前工作目录
dirNode root; //定义根目录
typedef dirNode *btree;//复制文件是新建的根节点目录,
char path[100]; //定义路径信息
//初始化函数
void initial()
{
strcpy_s ( root.name“root“ );//复制函数,后者复制到前者结尾
root.type=0;
root.next=NULL;
root.sub=NULL;
root.father=NULL;
root.size=0;
workDir=&root;
strcpy_s ( path“root“ );
}
//初始化新结点函数
dirNode *init()
{
dirNode *p;
p=new dirNode;
//strcpy_s ( root.name““ );
root.type=0;
root.next=NULL;
root.sub=NULL;
root.father=NULL;
root.size=0;
return p;
}
//1 进入子目录
void CD ( char dirName[] )
{
dirNode *p;
int flag=0;
int n=1;
p=workDir->sub;
if ( p==NULL )
{
cout<<“错误\““< }
else
{
while ( p&&(flag==0) )
{
if ( p->type==0 )
{
if ( !strcmp ( p->namedirName ) )//当二者是同一个目录时
{
flag=1;
break;
}
}
if(flag==0)
p=p->next;
}
if ( flag==1 )
{
workDir=p;
strcat_s ( path“\\ “ );//函数功能把后者添加到前者结尾
strcat_s ( pathp->name );//记录路径
cout<<“工作目录已进入\““< }
else
{
cout<<“错误\““< }
}
}
//2 创建文件
void CREATE ( char fileName[]int fileSize )
{
int flag;
dirNode *p1*q1;
q1=new dirNode;
strcpy_s( q1->namefileName );
q1->sub=NULL;
q1->type=1;
q1->next=NULL;
q1->father=workDir;
q1->size=fileSize;
p1=workDir->sub;
if ( p1==NULL )
{
workDir->sub=q1;
cout<<“\““< }
else
{
flag=0;
while ( p1 )
{
if ( p1->type==1 )
{
if ( !strcmp( p1->namefileName ) )
{
flag=1;
cout<<“错误\““< }
}
p1=p1->next;
}
if ( flag==0 )
{
p1=workDir->sub;
while ( p1->next )
{
p1=p1->next;
}
p1->next=q1;
cout<<“\““< }
}
}
//3 删除文件
void DEL ( char fileName[] )
{
dirNode *p*q;
int flag=0;
p=workDir->sub;
if ( p==NULL )
{
评论
共有 条评论