基于Linux的模拟文件系统的设计与实现(4)

2019-03-28 15:36

if(!strcmp(check->name,name)) break; else

check=check->next; }

if(check==NULL) {

printf(\goto con_g; }

//success

cur_con=check; MenuFolder(); return; }

//step ~

void absolutePathFileController() {

printf(\

printf(\printf(\

char name[28];

printf(\absolute:printf(\scanf(\

if(name[0]=='#') return;

char folder_name[10]; char file_name[14];

//analyse the absolute path //get folder name if(name[0]=='/') {

printf(\goto absolute; }

15

int i=0,j=0;

while(name[i]!='/'&&i<=9) {

if(name[i]=='\\0') {

printf(\goto absolute; }

folder_name[i]=name[i]; i++; }

folder_name[i]='\\0'; i++;

//get file name if(name[i]=='\\0') {

printf(\goto absolute; }

while(name[i+j]!='\\0'&&j<=9) {

file_name[j]=name[i+j]; j++; }

file_name[j]='\\0';

printf(\printf(\

printf(\printf(\printf(\

//seek folder

Content *folder_checker;

folder_checker=cur_user->conHead; while(folder_checker!=NULL) {

if(!strcmp(folder_checker->name,folder_name)) break; else

16

folder_checker=folder_checker->next; }

if(folder_checker==NULL) {

printf(\goto absolute; }

//seek file

File *file_checker;

file_checker=folder_checker->fileHead; while(file_checker!=NULL) {

if(!strcmp(file_checker->name,file_name)) break; else

file_checker=file_checker->next; }

if(file_checker==NULL) {

printf(\goto absolute; }

//read the file

char fullName[20]={\strcat(fullName,file_name);

printf(\file_checker->fp=fopen(fullName,\char ch;

while(ch!=EOF) {

putchar(ch=getc(file_checker->fp)); }

printf(\fclose(file_checker->fp);

return; }

17

3.2 文件管理系统:

截图3-3

相关核心代码: //step1-2

void MenuFolder() {

void FileCreate(); void FileRead(); void FileWrite(); void FileDelete(); void FileMove();

File *goThrough; Content *current; current=cur_con;

goThrough=current->fileHead; char buffer[2]; int choice;

for(;;) {

fgets(buffer,2,stdin);

printf(\printf(\printf(\printf(\printf(\printf(\

printf(\

printf(\printf(\view all your files below: %d files

18

total\\n\if(current->fileHead==NULL) printf(\|\\n no file.\\n\else {

goThrough=current->fileHead; while(goThrough!=NULL) {

printf(\|\\n %s\\n\goThrough=goThrough->next; } }

printf(\printf(\choice=-1;

scanf(\switch(choice) {

case 1:FileCreate();continue; case 2:FileRead();continue; case 3:FileWrite();continue; case 4:FileDelete();continue; case 5:FileMove();continue;

case 6:printf(\

case 0:printf(\default:printf(\} } }

//step2

void FileCreate() {

Content *cur_content; cur_content=cur_con;

//allocate new memory block for new file's index File *add,*last;

add=(File *)malloc(sizeof(File)); add->next=NULL; add->fp=NULL;

19


基于Linux的模拟文件系统的设计与实现(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2018年高考数学一轮复习第十一章计数原理、概率、随机变量及其分

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: