⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 复件 模拟文件系统6.c

📁 操作系统课程实训源代码 模拟操作系统的文件管理系统
💻 C
📖 第 1 页 / 共 2 页
字号:
				    check=strcmp(pin,name);
		        if (check!=0){}
		        else
				{
					if(fa[i].att==0)
					{
			            printf("书写错误!只读文件!\n");
						a=1;
						getchar();
			            break;
					}
		            printf("请输入文件的内容: \n");
		            scanf("%s",c);
			        strcpy(fg[i].f_c,c);
		            printf("书写文件成功.\n");
		            a=1;
					getchar();
					getchar();
				    break;
				}
			}
			if(a!=1)
			{
				printf("文件不存在!");
				break;
			}
		}
	   break;
	}
}
void copyfile() // 复制文件操作
{
	int i,j,k,l,check,p;
	char name[8],name1[8],pin[8];
	printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");
	printf("                    *  复制文件 *\n");
    printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");
	if(x==1)
	{
	    printf("请输入要复制的文件的名称:\n");
	    scanf("%s",name);
    	getchar();
	    printf("请输入要复制到的文件的名称:\n");
	    scanf("%s",name1);
    	getchar();
		for( i=0;i<8;i++)                       //获取文件的状态,是否存在
		{
			for(j=0;j<8;j++)
			     pin[j]=fa[i].f_name[j];
		    check=strcmp(pin,name);
		    if (check!=0){}
			else
			{
				for( k=0;k<8;k++)              //获取文件的状态,是否存在
				{
			       for(l=0;l<8;l++)
			          pin[l]=fa[k].f_name[l];
				    check=strcmp(pin,name1);
		            if (check!=0){}
					else
					{
						for(p=0;p<8;p++)
						{
							fa[k].f_c[p]=fa[i].f_c[p];
						}
						printf("复制成功\n");
					}
				}
			}

		}
	}
	if(x==2)
	{
	    printf("请输入要复制的文件的名称:\n");
	    scanf("%s",name);
    	getchar();
	    printf("请输入要复制到的文件的名称:\n");
	    scanf("%s",name1);
    	getchar();
		for( i=0;i<8;i++)                      //获取文件的状态,是否存在
		{
			for(j=0;j<8;j++)
			     pin[j]=fg[i].f_name[j];
		    check=strcmp(pin,name);
		    if (check!=0){}
			else
			{
				for( k=0;k<8;k++)                   //获取文件的状态,是否存在
				{
			       for(l=0;l<8;l++)
			          pin[l]=fg[k].f_name[l];
				    check=strcmp(pin,name1);
		            if (check!=0){}
					else
					{
						for(p=0;p<8;p++)
						{
							fa[k].f_c[p]=fa[i].f_c[p];
						}
						printf("复制成功\n");
						getchar();
					}
				}
			}
		}
	}
	getchar();
}
void modifyfile() /*修改属性操作*/
{
	int status=0,a,i,j,check;
	char choice,name[8],pin[8];
	while(1)
	{
		printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");
	    printf("                    *  修改属性 *\n");
        printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");
		if(x==1)
		{ 
			printf("请输入所要修改属性的文件的名称:\n");
		    scanf("%s",name);
		    getchar();
			for( i=0;i<8;i++)
			{
				for(j=0;j<8;j++)
				   pin[j]=fa[i].f_name[j];
				check=strcmp(pin,name);
		        if (check!=0){}
		        else
				{
					printf("<0.只读 -- 1.只写>\n");
			        printf("请选择文件属性:");
					while(1)
					{
				        scanf("%d",&a);
						getchar();
				        if(x==1||x==2)
				        	break;
				        else
					    printf("错误! 请重新输入:\n");
					}
					fa[i].att=a;
					printf("修改属性成功.\n");
					status=1;
					break;
				}
			}                                 /*获取文件的状态*/
		    if(status!=1)
			{
			    printf("错误! 文件不存在!");
			    getchar();
			    printf("是否重新输入?(Y - N)\n");
			    scanf("%c",&choice);
		        getchar();
			    if(choice=='N'||choice=='n')
				    break;
			}
		    getchar();
			break;
		}
		if(x==2)
		{
			printf("请输入所要修改属性的文件的名称:\n");
		    scanf("%s",name);
		    getchar();
			for( i=0;i<8;i++)
			{
				for(j=0;j<8;j++)
				   pin[j]=fg[i].f_name[j];
				check=strcmp(pin,name);
		        if (check!=0){}
		        else
				{
					printf("<0.只读 -- 1.只写>\n");
			        printf("请选择文件属性:");
					while(1)
					{
				        scanf("%d",&a);
						getchar();
				        if(x==1||x==2)
				        	break;
				        else
					    printf("错误! 请重新输入:\n");
					}
					fg[i].att=a;
					printf("修改属性成功.\n");
					break;
				}
				if(i==7)
				{
					status=1;
					break;
				}
			}                                 /*获取文件的状态*/
		if(status=1)
		{
			printf("错误! 文件不存在!");
			getchar();
			printf("是否重新输入?(Y - N)\n");
			scanf("%c",&choice);
			getchar();
			if(choice=='N'||choice=='n')
				break;
		}
		getchar();
		}
	}
}
void catalogue()              /*目录管理子程序*/
{
	int b,i,j;
	char name[8],pin[20];
	while(1)                  /*目录管理操作*/ 
	{ 
		
		printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");
	    printf("                    *  目录管理 *\n");
        printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");
		printf("             1.显示目录文件                  2.退出目录\n");
		printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");
		printf("请选择:");
		scanf("%d",&b);
		while(b<1||b>2)
		{
			printf("\n错误! 请重新输入:");
			scanf("%d",&b);
		}
		if(b==1)
		{
          switch(x)                           
          {              
          case 1:                 /*显示目录操作*/
              {
                 system("cls");
                 printf("Administrator目录文件:\n");
                 for(i=0;i<8;i++)
                 {
                    for(j=0;j<8;j++)
                       pin[j]=fa[i].f_name[j];                  
                   printf("        %s\n",pin); 
                 }
                                
		         getchar();
                 
                 break;
              }
          case 2:                 /*显示目录操作*/
              {
                 system("cls");
                 printf("Guest目录文件:\n");
                 for(i=0;i<8;i++)
                 {
                    for(j=0;j<8;j++)
                       pin[j]=fg[i].f_name[j];                  
                   printf("        %s\n",pin); 
                 }
                                
		         getchar();
                 
                 break;
              }
          }    
        }   
	    else
		{
            system("cls");
		    getchar();
		    break; 
        }    
	}

}
int init() /*初始化操作界面函数*/
{
	int i;
	printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");
	printf("                  *  文件管理系统 *\n");
	printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");
	printf("1.创建文件     2.删除文件     3.打开文件     4.书写文件\n");
	printf("5.复制文件     6.修改属性     7.目录管理     8.消    注\n");
	printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");
	printf("请您选择:");
	scanf("%d",&i);
	return(i); /*选择相应的序号,执行相应的操作*/
}
int main(void)
{
	int flag=1,i;
	check();
    while(flag) /*初始化系统界面*/
	{
		if(x==3)
		{
		     exit(0);
		}
		i=init();
        getchar();
        switch(i)
		{
        case 1:                   /*创建文件*/
			{
				system("cls");
				createfile();
				system("cls");
				break;
			}
        case 2:                     /*删除文件*/
			{
				system("cls");
				deletefile(); 
				system("cls");
				break;
			}
        case 3:                      /*打开文件*/
			{
				system("cls");
				openfile();
				system("cls"); 
                break;
			}
        case 4:                      /*写文件*/
			{
				system("cls");
				writefile();
				system("cls"); 
                break;
			}
        case 5:                     //拷贝文件
			{ 
				system("cls");
				copyfile();
				system("cls");
                break;
			}
		case 6:                      //修改文件属性
			{
				system("cls");
				modifyfile(); 
				system("cls");
			    break;
			}  
		case 7:                      /*文件目录管理*/
			{  
				system("cls"); 
			    catalogue();
			    system("cls"); 
		    	break;
			}
		case 8:
			{
				system("cls"); 
				check();
				system("cls"); 
				break; /*退出文件管理系统程序*/
			}
		default: 
			printf("\n\n 错误!请重新输入:\n");
			getchar();
			break;
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -