if(cur_content->fileHead==NULL) cur_content->fileHead=add; else {
last=cur_content->fileHead; while(last->next!=NULL) last=last->next; last->next=add; }
cur_content->f_num++;
//fulfill the new folder name char name[10]; File *check; char buffer[2];
fgets(buffer,2,stdin);
file_r:printf(\create a new File:\\nfile name(9,only alphabet and number can be used):\\n\
scanf(\
check=cur_content->fileHead; while(check!=add) {
if(strcmp(name,check->name)==0) {
printf(\goto file_r; }
check=check->next; }
//check legality of the name int i=0;
for(;i<=9;i++) {
if(name[i]>=97&&name[i]<=122)//lower continue; else
if(name[i]>=48&&name[i]<=57)//num continue;
20
else
if(name[i]>=65&&name[i]<=90)//upper continue; else
if(name[i]=='\\0') break; else {
printf(\goto file_r; } }
strcpy(add->name,name); char fullName[20]={\strcat(fullName,name);
add->fp=fopen(fullName,\if(add->fp==NULL) {
printf(\goto file_r; }
fclose(add->fp); printf(\return; }
//step2
void FileRead() {
if(cur_con->fileHead==NULL) {
printf(\return; }
printf(\File *current;
char name[10];
printf(\
21
file_r:printf(\scanf(\
if(name[0]=='#') return;
//seek file name
current=cur_con->fileHead; while(current!=NULL) {
if(!strcmp(current->name,name)) break; else
current=current->next; }
if(current==NULL) {
printf(\goto file_r; }
char fullName[20]={\strcat(fullName,name);
printf(\current->fp=fopen(fullName,\char ch;
while(ch!=EOF) {
putchar(ch=getc(current->fp)); }
printf(\fclose(current->fp);
return; }
//step2
void FileWrite() {
if(cur_con->fileHead==NULL) {
printf(\return;
22
}
printf(\File *current;
char name[10];
printf(\file_r:printf(\scanf(\
if(name[0]=='#') return;
//seek file name
current=cur_con->fileHead; while(current!=NULL) {
if(!strcmp(current->name,name)) break; else
current=current->next; }
if(current==NULL) {
printf(\goto file_r; }
char fullName[20]={\strcat(fullName,name);
printf(\details:(tpye in \\\current->fp=fopen(fullName,\char ch;
ch=getchar(); while(ch!='#') {
putc(ch,current->fp); ch=getchar(); }
fclose(current->fp);
printf(\return;
23
}
//step2
void FileDelete() {
if(cur_con->fileHead==NULL) {
printf(\return; }
File *front,*current;
char name[10];
printf(\file_d:printf(\scanf(\
if(name[0]=='#') return;
//seek file name
current=cur_con->fileHead; while(current!=NULL) {
if(!strcmp(current->name,name)) break; else
current=current->next; }
if(current==NULL) {
printf(\goto file_d; }
//execute delete operation front=cur_con->fileHead; if(front==current) //if curren is the head file {
cur_con->fileHead=current->next;
24