資源簡介
操作系統課程設計 剛剛學的時候寫的 很好
簡單的文件管理系統 模擬
代碼片段和文件信息
#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);
}
}
/*-----------------------------==================---------------------------------*/
/*----------------------------
- 上一篇:表達式求值C語言實現《數據結構》課程設計報告
- 下一篇:多目標車輛路徑優化源代碼
評論
共有 條評論