• 大小: 19KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-05-16
  • 语言: C/C++
  • 标签: 操作系统  

资源简介

操作系统课程设计 刚刚学的时候写的 很好 简单的文件管理系统 模拟

资源截图

代码片段和文件信息

#include “stdio.h“
#include “stdlib.h“
#include “string.h“
#include “ctype.h“

#define FILENAME_LEN 12
#define NULL 0
/*-----------------------------==================---------------------------------*/
/*-----------------------------定 义 数  据 结 构---------------------------------*/
/*-----------------------------==================---------------------------------*/
struct FileNode
{
char filename[FILENAME_LEN];                //文件名或目录名
char i_type[6];                             //目录文件识别标志
int i_nlink;                                //文件的链接数
struct FileNode *parent*child;             //指向父亲的指针和指向左孩子的指针
struct FileNode *sibling_prev*sibling_next;//指向前一个兄弟的指针和指向后一个兄弟的指针
}*head*fph;

/*-----------------------------定 义 全  局 变 量---------------------------------*/
/*-----------------------------==================---------------------------------*/
char command[10]direct[100];          //commamd[]命令函数direct[]目录或文件名
char nowdir[50][100];                  //当前所在目录
int flag=1;                            //标志向量
/*-----------------------------==================---------------------------------*/
/*-----------------------------创 建 新  的 结 点---------------------------------*/
/*-----------------------------==================---------------------------------*/
struct FileNode * CreateFileNode(char command[]char direct[]FileNode *newd)      //创建结点
{
if(strcmp(command“md“)==0 || strcmp(command“MD“)==0)        //当创建目录时,isdir[]=dir
strcpy(newd->i_type“
“);
if(strcmp(command“edit“)==0 || strcmp(command“EDIT“)==0)      //当创建文件时 isdi[]=file
strcpy(newd->i_type““);
strcpy(newd->filenamedirect);
newd->i_nlink=0;
newd->child=NULL;
newd->sibling_next=NULL;
return (newd);
}
/*-----------------------------==================---------------------------------*/
/*-----------------------------操作名和路径名分解---------------------------------*/
/*-----------------------------==================---------------------------------*/
void ParseCommand(char nowcom[])          //接受输入的命令并将其分解成操作名和路径文件名
{
int i=0m=0k=0;
while(isspace(nowcom[i])&&nowcom[i]!=‘\0‘)    //检查是否是空格、跳格符并记下空格的位置
i++;
while(nowcom[i]!=‘ ‘&&(nowcom[i])!=‘\0‘&&(nowcom[i])!=(char)92)
{
command[m]=nowcom[i];
i++;
m++;
}
command[m]=‘\0‘;             //操作命令
while(nowcom[i]!=‘\0‘)
{
direct[k]=nowcom[i];
i++;
k++;
}
direct[k]=‘\0‘;               //文件或目录名称
}
/*-----------------------------==================---------------------------------*/
/*-----------------------------获 取 当 前  路 径---------------------------------*/
/*-----------------------------==================---------------------------------*/
void GetDir(FileNode *q)
{
if(q->parent!=NULL)
GetDir(q->parent);
if(strcmp(q->filename“root“)==0)
printf(“%s:“q->filename);
else
{
printf(“%s\\“q->filename);
}
}
/*-----------------------------==================---------------------------------*/
/*----------------------------

评论

共有 条评论