ITPub博客

首页 > 数字化转型 > ERP > 文件管理系统 (转)

文件管理系统 (转)

原创 ERP 作者:gugu99 时间:2007-12-02 14:41:24 0 删除 编辑
文件管理系统 (转)[@more@]

/***********文 件 管 理 系 统***********/
#include
#include   /*不容易归类的标准函数库*/
#include
#include
#include  
#include   /*非标准文件输入输出操作的代码符号属性*/
#include
#include

int init()  /*初始化操作界面函数*/
{int i;
 clrscr();
 gotoxy(23,4);printf("* * * * * * * * * * * * * *");
 gotoxy(27,5);printf("FILE MANAGE SYSTEM");
 gotoxy(23,6);printf("* * * * * * * * * * * * * *");
 gotoxy(28,9);printf("1--Creat  File");
 gotoxy(28,10);printf("2--Delete  File");
 gotoxy(28,11);printf("3--OPen  File");
 gotoxy(28,12);printf("4--Write  File");
 gotoxy(28,13);printf("5--Locate  File");
 gotoxy(28,14);printf("6--Modify  File");
 gotoxy(28,15);printf("7--Copy  File");
 gotoxy(28,16);printf("8--Move  File");
 gotoxy(28,17);printf("9--Cataloge Manage");
 gotoxy(28,18);printf("10--Exit  File");
 gotoxy(25,21);
 printf("Please Choice:");
  scanf("%d",&i);
 return(i);  /*选择相应的序号,执行相应的操作*/
}

main()
{int x,i,j,flag=1;
 char name[15],name1[15],name2[40];
 char choice,ch;
 int handle,status;  /*定义文件的指针和状态*/
 FILE *fp;
 while(flag)  /*初始化系统界面*/
{i=init();
 getchar();
 switch(i)
  { case 1:label1:  /*创建文件操作*/
  clrscr();
  gotoxy(27,5);printf("CREAT  FILEn");
  for(j=0;j<40;j++)
  printf("= ");
  printf("nnPlease input the creating file name and routine:n");
  scanf("%s",name);
  getchar();
  handle=creatnew(name,0);/*按指定的文件方式创建文件,若有同名文件返回错误代码*/
  if(handle==-1)
  { printf("nSorry,the file already exists.");
  getchar();
  printf("nInput again?(Y or N)");
  scanf("%c",&choice);getchar();
  if(choice=='Y'||choice=='y')
  goto label1;
  }
  else { printf("nThe file is created.");
  printf("Do you now input contentof the file?(Y or N):");
  while(1)  /*输入创建文件的内容*/ 
  { scanf("%c",&choice);
  if(choice=='y'||choice=='n'||choice=='Y'||choice=='N')
  break;
  else
  printf("nError!Please input again!");
  }
  if(choice=='y'||choice=='Y')
  { printf("nNow input content to the file(End with '#'):nn");
  fp=fopen(name,'w');/*把内容存放到fp指向的文件中去*/
  ch=getchar();
  while(ch!='#')
  { fputc(ch,fp);
  ch=getchar();
  }
 fclose(fp);getchar();/*关闭文件*/
  }
  getchar();
  break;
  case 2:label2:  /*删除文件的操作*/
  clrscr();
  gotoxy(25,5);printf("DELETE  FILEn");
  for(j=0;j<40;j++)
  printf("= ");
  printf("nnPlease input the deleting file name and routine:n");
  scanf("%s",name);  /*输入要删除的文件名*/
  getchar();
  printf("n Are you sure?(Y or N):");
  while(1)
  { scanf("%c",&choice);
  if(choice=='y'||choice=='n'||choice=='Y'||choice=='N')
  break;
  else
  printf("nError!Please input again!");
  }
  if(choice=='y'||choice=='Y')
  {status=access(name,0);/*获取文件的状态,是否存在*/
  if(status!=0)
  {printf("nSorry the file doesn't exist!");
  getchar();
  printf("nnInput again?(Y or N)");
  scanf("%c",&choice);getchar();
  if(choice=='Y'||choice=='y')
  goto label2;
  }
  else
  {  status=access(name,02);/*获取文件的状态,是否存在并且是否只读*/
  if(status!=0)
 { printf("nSorry the file is only read!");
  getchar();
 }
  else
  {unlink(name);  /*从目录中删除一个文件函数,该函数在dos.h中*/ 
 printf("nndelete succefully!");
 getchar();
  }
  }
  }
  getchar();
  break;
  case 3:label3:  /*打开文件操作*/ 
  clrscr();
  gotoxy(27,5);printf("OPEN  FILEn");
  for(j=0;j<40;j++)
  printf("= ");
  printf("nnPlease input the opening file name and routine:n");
  scanf("%s",name);
  status=access(name,0);/*获取文件的状态*/
  if(status!=0)
  {printf("nSorry the file doesn't exist!");
  getchar();
  printf("nnInput again?(Y or N)");
  scanf("%c",&choice);getchar();
  if(choice=='Y'||choice=='y')
  goto label3;
  }
  else
  { printf("nNow begin to read the file:n");
    fp=fopen(name,'r');
  ch=fgetc(fp);  /*读出文件到内存*/
  while(ch!=EOF)
  {printf("%c",ch);
  ch=fgetc(fp);j++;
  }
  fclose(fp);getchar();/*关闭文件*/
  }
  getchar();
  break;
  case 4:label4:  /*写文件操作*/
  clrscr();
  gotoxy(27,5);printf("WRITE  FILEn");
  for(j=0;j<40;j++)
  printf("= ");
  printf("nnPlease input the writing file name and routine:n");
  scanf("%s",name);
  status=access(name,0);/*获取name指向的文件状态*/
  if(status!=0)
  {printf("nSorry the file doesn't exist!");
  getchar();
  printf("nnInput again?(Y or N)");
 scanf("%c",&choice);getchar();
  if(choice=='Y'||choice=='y')
 goto label4;
  }
  else
  {fp=fopen(name,'w');/*以写入方式打开name 指向的文件*/
  printf("nPlease input the information(end with '#'):n");
  ch=getchar();  /*重写文件*/
  while(ch!='#')
  { fputc(ch,fp);
  ch=getchar();
  }
  fclose(fp);getchar();/*关闭文件*/
  }
  getchar();
  break;
  case 5:label5:  /*定位文件操作*/
  clrscr();
  gotoxy(27,5);printf("LOCATE  FILEn");
  for(j=0;j<40;j++)
  printf("= ");
  printf("nnPlease input the locating file name and routine:n");
  scanf("%s",name);
  status=access(name,0);/*获取name文件指向的文件的状态*/
  if(status!=0)
  {printf("nSorry the file doesn't exist!");
  getchar();
  printf("nnInput again?(Y or N)");
  scanf("%c",&choice);getchar();
  if(choice=='Y'||choice=='y')
  goto label5;
  }
  else
  {printf("nPlease input the location:");
  scanf("%d",&x);
  handle=open(name,O_CREAT|O_RDWR,S_IREAD|S_IWRITE);/*打开由name指定的文件,name既可以是简单的文件名*/
  /*也可以是文件的路径名,O_CREAT表示了打开文件的存取代码,若文件不存在,则建立,否则无效。*/
  /*O_RDWR表示打开文件用于读写。S_IREAD|S_IWRITE允许读写*/
  lseek(handle,x,SEEK_SET);/*该函数把由handle指定的文件的文件指针,移到SEEK_SET(开始位置)再加上x偏移量的地方*/
  getchar();
  }
  getchar();
  break;
  case 6:label6:  /*修改文件属性操作*/
  clrscr();
  gotoxy(27,5);printf("MODIFY  FILEn");
  for(j=0;j<80;j++)
  printf("= ");
  printf("nnPlease input the modifying attribution file name and routine:n");
  scanf("%s",name);
  status=access(name,0);/*获取文件的状态*/
  if(status!=0)
  {printf("nSorry the file doesn't exist!");
  getchar();
  printf("nnInput again?(Y or N)");
  scanf("%c",&choice);getchar();
  if(choice=='Y'||choice=='y')
  goto label6;
  }
  else
  { printf("nPlease choice:1--READ_ONLY  2--WRITE_ONLY");
   printf("nnPlease choice the attributione operation:");
  while(1)
  { scanf("%d",&x);
  if(x==1||x==2)
  break;
  else
  printf("nError!Please input again!");
  }
  if(x==1) { status=chmod(name,S_IREAD);/*修改文件为“只读”*/
  if(status)
  printf("nSorry!Couldn't make the file read_only!");
  else
  printf("n===Made <%s> read_only===",name);
  getchar();
  }
  else if(x==2)  /*修改文件为“只写”*/
  { status=chmod(name,S_IWRITE);
  if(status)
  printf("nSorry!Couldn't make the file write_only!");
  else
  printf("n===Made <%s> write_only===",name);
  getchar();
  }
  }
  getchar();
  break;
  case 7:clrscr();  /*复制文件的操作*/
  gotoxy(27,5);printf("COPY  FILEn");
  for(j=0;j<40;j++)
  printf("= ");
  printf("nnPlease input the copying file name and routine:n");
  scanf("%s",name);
  getchar();
  printf("nPlease input the copyed file name and routine:n");
  scanf("%s",name1);
  getchar();
  strcpy(name2,"copy ");
  strcat(name2,name);
  strcat(name2," ");
  strcat(name2,name1);
  system(name2);  /*系统调用dos指令*/
  getchar();
  break;
  case 8:clrscr();  /*移动文件操作*/
  gotoxy(27,5);printf("MOVE  FILEn");
  for(j=0;j<40;j++)
  printf("= ");
  printf("nnPlease input the moving file name and routine:n");
  scanf("%s",name);
  getchar();
  printf("nPlease input the moving file name and routine:n");
  scanf("%s",name1);
  getchar();
  strcpy(name2,"move ");
  strcat(name2,name);
  strcat(name2," ");
  strcat(name2,name1);
  system(name2);  /*系统调用dos指令*/
  getchar();
  break;
  case 9: label9:  /*目录管理操作*/
  clrscr();
  gotoxy(27,5);printf("CATALOGUE  MANAGEn");
  for(j=0;j<40;j++)
  printf("= ");
  gotoxy(13,9);
  printf("Please input the moving file name and routine:n");
  gotoxy(25,11);printf("1--display catalogue");
  gotoxy(25,12);printf("2--creat catalogue");
  gotoxy(25,13);printf("3--detele catalogue");
  gotoxy(25,14);printf("4--copy catalogue");
  gotoxy(25,15);printf("5--move catalogue");
  gotoxy(25,16);printf("6--exit catalogue");
  gotoxy(26,20);
  printf("Please choice:");
  scanf("%d",&x);
  while(x<1||x>6)
  {printf("nError!Please input again!n");
  scanf("%d",&x);
  }
  switch(x)
  { case 1: printf("nPlease iuput the displaying catalogue:n");
  scanf("%s",name);/*县是目录操作*/
  strcpy(name2,"dir ");/*复制dir命令*/
  strcat(name2, name);
  printf("%s",name2);
  getchar();
  system(name2);/*系统调用*/
  getchar();
  break;
  case 2: printf("nPlease iuput the creating catalogue:n");
  scanf("%s",name);/*创建目录操作*/
  strcpy(name2,"md  ");/*复制md命令*/
  strcat(name2,name);
  system(name2);/*系统调用*/
  getchar();
  break;
  case 3: printf("nPlease iuput the deleting catalogue:n");
  scanf("%s",name);/*删除目录操作*/
  strcpy(name2,"rd  ");/*复制rd命令*/
  strcat(name2,name);
  system(name2);
  getchar();
  break;
  case 4: printf("nPlease iuput the copying catalogue:n");
  scanf("%s",name);/*复制目录操作*/
  printf("nPlease iuput the displayed catalogue:n");
  scanf("%s",name1);
  strcpy(name2,"xcopy ");/*复制xcopy命令*/
  strcat(name2,name);
  strcat(name2," ");
  strcat(name2,name1);
  strcat(name2,"/e");
  system(name2);/*系统调用*/
  getchar();break;
  case 5: printf("nPlease iuput the moving catalogue:n");
  scanf("%s",name);/*移动目录操作*/
  printf("nPlease iuput the moved catalogue:n");
  scanf("%s",name1);
  strcpy(name2,"move  ");/*复制move命令*/
  strcat(name2,name);
  strcat(name2," ");
  strcat(name2,name1);
  system(name2);
  getchar();break;
  case 6:goto tag;  /*退出目录管理操作*/
  }
 printf("Input again?(Y or N)");
  scanf("%c",&choice);getchar();
 if(choice=='Y'||choice=='y')
  goto label9; 
 tag:getchar();
  break;
case 10:flag=0;exit(0);break;  /*退出文件管理系统程序*/
default: clrscr();
  printf("nn  Error!Please input again!n");
  getchar();
  break;
  }
  }
 }
}



来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10748419/viewspace-987398/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 书评杂感 (转)
请登录后发表评论 登录
全部评论
  • 博文量
    3121
  • 访问量
    2643987