Red de conocimiento informático - Consumibles informáticos - ¡Puntuaciones altas en programación C++! Necesito urgentemente ayuda de un experto sobre cómo crear, mover y eliminar archivos y directorios en el sistema operativo.

¡Puntuaciones altas en programación C++! Necesito urgentemente ayuda de un experto sobre cómo crear, mover y eliminar archivos y directorios en el sistema operativo.

#include

#include

#include

# define NULL 0

typedef struct UFD

{ char filename[20];

atributo char;

int longth;

int dirección;

estructura UFD *next;

}*LUFD;

typedef estructura MFD

{ nombre de char [20];

struct MFD * siguiente;

struct UFD * go;

}*LMFD;

typedef struct UOF

{ nombre de archivo char[20];

atributo char;

int longth;

estado char;

int lectura;

int escritura;

estructura UOF *siguiente;

}*LUOF;

LMFD headM,leadM; p>

LUFD headU,leadU;

LUOF headO,leadO;

int s=0;

char com[50];

void print()

{int i;

LUFD P;

LUOF M;

P= (LUFD )malloc(tamaño de(UFD));

M=(LUOF)malloc(tamaño de(UOF));

P=cabezaU;M=cabezaO;

printf("\t\t\tUFD Table\n");

for(i=0;i<55;i++) printf("=");

printf ("\n");

printf(" Nombre de archivo Atributo Longitud de archivo Dirección\n");

while(P!=NULL)

{ printf( "%10s\t%4c%\t%11d\t%12d\n",P->nombre de archivo,P->atributo,P->longitud,P->dirección);

P= P->siguiente;}

for(i=0;i<55;i++) printf("=");

printf("\n\n") ;

printf("\t\t\t Tabla UOF\n");

for(i=0;i<75;i++) printf("=");

p>

printf("\n");

printf(" Atributo NombreDeArchivo

Estado de duración del archivo Lectura y escritura\n");

while(M!=NULL)

{printf("%10s\t%4c\t%11d%13c%13d%10d \n",M->nombre de archivo,M->atributo,M->longitud,M->estado,M->lectura,M->escritura);

M=M->siguiente;}

for(i=0;i<75;i++) printf("=");

printf("\n");

}

void init()

{ int i=0;

char*j="system.c";

if(( leadU=headU=(LUFD)malloc(sizeof(struct UFD)))==NULL)

{

printf("error de ensamblaje de headU.\n");

return;

}

if((leadO=headO=(LUOF)malloc(sizeof(struct UOF)))==NULL)

{

printf("error de ensamblaje de headO.\n");

return;

}

strcpy(headU-> nombre de archivo,j);

headU->attribute='*';

headU->longth=0;

headU->dirección=(int) headU;

strcpy(headO->nombre de archivo,j);

headO->atributo='*';

headO->longth=0;

headO->estado='*';

headO->read=(int)headO;

headO->write=(int)headO;

leadU->next=NULL;

leadO->next=NULL;

}

void MFDinit()

{int i=0;

char *f="sistema";

LMFD G;

if((leadM=headM=(LMFD )malloc(sizeof(struct MFD)))==NULL)

{

printf("error de ensamblaje de headM.\n");

return;

}

G=(LMFD)malloc(sizeof(MFD));

G=headM;

strcpy(headM- >nombre,f);

headM->go=headU;

leadM->next=NULL;

printf("\n");

printf("Inicie el sistema de administrador de archivos.\n\n");

printf("\tMFD Tabla\n");

for(i=0;i<28;i++) printf("=");

printf("\n");

printf(" Nombre de usuario Dirección de archivo\n");

while(G!=NULL)

{ printf("%8s\t%4d\n",G ->nombre,G->ir);

G=G->siguiente;}

for(i=0;i<28;i++) printf("=") ;

printf("\n\n");

print();

}

void SNEW()

{

char t;

int i=0;

LMFD N,G;

G=N =(LMFD)malloc(sizeof(MFD));

G=headM;

printf("\nIngrese el nuevo nombre de usuario: ");

getchar ();

while(1)

{ scanf("%c",&t);

if(t=='\n')

{

N->nombre[i]='\0';

descanso;

}

N->nombre[i]=t;

i++;

}

líderM->siguiente=N;

líderM =N;

N->next=NULL;

N->go=leadU->siguiente;

printf("\n\tNUEVA tabla MFD \n");

for(i=0;i<28;i++) printf("=");

printf("\n");

printf(" Nombre de usuario Dirección de archivo\n");

while(G!=NULL)

{ printf("%8s\t%4d\n",G- >nombre,G->ir);

G=G->siguiente }

for(i=0;i<28;i++) printf("=");

printf("\n\n");

}

void create()

{ nombre de archivo char[20]= {'\0'};

int longth=0;

atributo char;

LMFD T;

LUFD N;

LUOF S;

int i;

T=(LMFD)malloc(tamañode(MFD));

N=(LUFD )malloc(tamañode(UFD));

S=(LUOF)mallo

c(sizeof(UOF));

T=headM;

for(i=0,s+=1;s<50;s++,i++)

{

if(com[s]!=',')

nombre de archivo[i]=com[s]

if(com[s] ]==',')

{

nombre de archivo[i]='\0';

s++;

}

}

for(i=0;s<50;s++,i++)

{ if(com[s ]==',') romper;

if(i>0) longth*=10;

if(com[s]!=','){ longth+=com [s]-48; printf("%c,%c,%d\n",com[s],com[s+1],longth }

}

s++;

atributo=com[s];

getchar();getchar();

printf("%s ,,%d , ,%c",nombre de archivo,longitud,atributo);

do{

if(strcmp(T->nombre,nombre de archivo)==0)

{ printf("El nombre del archivo estaba presente.\n");

return;

}

T=T->next;

} while(T!=NULL);

strcpy(N->nombre de archivo,nombre de archivo);

N->longth=longth;

N ->atributo=atributo;

N->dirección=(int)N;

leadU->siguiente=N;

leadU=N; p>

N->next=NULL;

printf("\nq--%s ,%d ,%c,%d",N->nombre de archivo,N->longitud ,N ->atributo,N->siguiente);

strcpy(S->nombre de archivo,nombre de archivo);

S->longth=longth;

S- >atributo=atributo;

S->leer=(int)S;

S->escribir=(int)S;

S- >estado ='s';

leadO->next=S;

leadO=S;

S->next=NULL;

printf("\nConfiguración exitosa.\n");

print();

}

void close()

{ nombre de archivo char[20]={

'\0'};

int i;

LUOF S,P;

P=S=(LUOF)malloc(sizeof(UOF));

S=cabezaO;P=cabezaO;

for(i=0,s+=1;s<50;s++,i++)

{ if( com[s]!=')')nombre de archivo[i]=com[s];

if(com[s]==')'){nombre de archivo[i]='\0'; s++; romper;}

}

hacer{

if(strcmp(S->nombre de archivo,nombre de archivo)==0) romper;

S=S->siguiente;

} while(S!=NULL);

if(S==NULL){printf("El archivo no se puede encontrar.\ n"); return;}

if(S->estado=='s') S->estado=' ';

else {

if(S->state!='o'){printf("El archivo se había cerrado.\n");}

}

while(P->next). !=S) P=P->siguiente;

P->siguiente=S->siguiente;

if(S==leadO) leadO=P;

free(S);

print();

printf("Archivo cerrado correctamente.");

}

void open()

{ nombre de archivo char[20]={'\0'};

char op;

int i;

LUFD T;

LUOF S,N;

T=(LUFD)malloc(tamañode(UFD));

S=N=( LUOF)malloc(sizeof(UOF));

T=headU; S=headO;

for(i=0,s+=1;s<20;s++,i++)

{ if(com[s]!=',')nombre de archivo[i]=com[s]

if(com[s]==','){ nombre de archivo[i]='\0'; s++; romper;}

}

op=com[s];

hacer{

if(strcmp(T->nombre de archivo,nombre de archivo)==0) break

T=T->siguiente;

} while(T!=NULL);

if(T==NULL){printf("El archivo no se puede encontrar.\n"); return;}

do{

if(strcmp). (S->nombre de archivo,nombre de archivo)==0)

{ if(S->estado=='s'){

printf("El archivo no se puede abrir.\n");return;}

else{ printf("El archivo se abrió.\n");}

}

S=S->siguiente;

}mientras(S!=NULL);

if(T->atributo==op)

{ strcpy(N->nombre de archivo,nombre de archivo);

N->atributo=op;

N->longth=T->longth;

N->estado='o';

N->read=T->dirección;

N->write=T->dirección;

plomoO->siguiente=N;

plomoO=N;

N->siguiente=NULL;

}

más printf("Operación illedge.\n");

print();

}

void delet()

{

nombre de archivo char[20];

int i;

LUFD T,P;

LUOF S,N;

P=T=(LUFD)malloc(tamañode(UFD));

N=S=(LUOF)malloc(tamañode(UOF));

T=cabezaU ; S=cabezaO; N=cabezaO; P=cabezaU;

for(i=0,s+=1;s<50;s++,i++)

{ if(com[ s]!=')')nombre de archivo[i]=com[s];

if(com[s]==')'){nombre de archivo[i]='\0'; break;}

}

do{

if(strcmp(T->nombre de archivo,nombre de archivo)==0)break;

T=T->siguiente;

} while(T!=NULL);

if(T==NULL){printf("El archivo fue eliminado.\n" ); return;}

hacer{

if(strcmp(S->filename,filename)==0) break;

S=S-> siguiente;

}mientras(S!=NULL);

si(S!=NULL)

{

mientras(N ->siguiente!=S) N=N->siguiente;

N->siguiente=S->siguiente;

if(S==leadO) leadO=N;

libre(S);

while(P->siguiente!=T) P=P->siguiente;

P->siguiente=T-> siguiente;

if(P==le

adU) leadU=P;

free(T);

}

print();

printf("El archivo se elimina éxito.\n");

}

void readf()

{ int i;

char filename[20]= {'\0'};

int rlong;

LUOF T;

T=(LUOF)malloc(sizeof(UOF)); >

T=cabezaO;

for(i=0,s+=1;s<50;s++,i++)

{ if(com[s]!=' ,')nombre de archivo[i]=com[s];

if(com[s]==','){nombre de archivo[i]='\0'; p>

}

for(i=0;s<50;s++,i++)

{ if(com[s]==')') descanso;

if(i>0) rlong*=10;

if(com[s]!=')'){ rlong+=com[s]-48; c,%c,%d\n",com[s],com[s+1],rlong); }

}

hacer{ if(strcmp(T- >nombre de archivo,nombre de archivo)==0) romper;

T=T->siguiente;

}mientras(T!=NULL);

if( T==NULL){printf("El archivo estaba abierto.\n"); return;}

if(T->state!='o')

{printf ("El archivo se cierra.\n"); return;}

T->read+=rlong;

print();

printf("Leer éxito del archivo.\n");

}

void writef()

{ char filename[20]={'\0'};

int num,w,i;

LUOF T;

T=(LUOF)malloc(tamañode(UOF));

T =headO;

for(i=0,s+=1;s<50;s++,i++)

{ if(com[s]!=',')nombre de archivo[ i]=com[s];

if(com[s]==','){nombre de archivo[i]='\0'; }

for(i=0;s<50;s++,i++)

{ if(com[s]==',') descanso;

if(i>0) num*=10;

if(com[s]!=','){ num+=com[s]-48; %d\n",com[s],com[s+1],num); }

}

hacer{ if(strcm

p(T->nombre de archivo,nombre de archivo)==0) descanso;

T=T->siguiente;

}mientras(T!=NULL);

if(T==NULL){printf("El archivo estaba abierto.\n");}

if(T->state=='s') T->write+= num;

else {

if(T->attribute=='w')

{ printf("Secuencia o escritura Rand [0/1] : ");

scanf("%d",&w);

if(w==0) T->write+=num;

else T->write=((rand()+1)%50);

}

else { printf(" Operación illedge.\n"); p>

}

print();

printf("Escribir archivo correctamente.\n");

}

void main ()

{ char nombre[20];

char bom[20];

char b='y',t='y ';

int i,j=1;

init();

MFDinit();

while(t!= 'n')

{

printf("\n¿Desea configurar un nuevo nombre de usuario [y|n]: ");

if( (t=getchar())=='y')

SNEW();

}

while(b=='y')

{

printf("\nIngrese el nombre de usuario: ");

scanf("%s",nombre);

getchar ();

b='n';

hacer{

if(strcmp(leadM->nombre,nombre)==0)

romper;

leadM=leadM->siguiente;

} while(leadM!=NULL);

if(leadM!=NULL)

{

while(j)

{

printf("\nIngrese el comando: "); p> for(i=0;i<50;i++)

{

scanf("%c",&t);

if(t= ='(') s=i;

if(t=='\n')

{

com[i]='\0' ;

bom[i]='\0';

descanso;

}

com[i]=t; /p>

b

om[i]=t;

}

printf("1----%s,2-----%s\n",com,bom);

for(i=s;i<50;i++)

bom[i]='\0'

for(i=0;i <50;i++)

printf("%c",bom[i]

if(strcmp(bom,"create")==0)

crear();

if(strcmp(bom,"open")==0)

abrir();

if(strcmp( bom,"delete")==0)

eliminar();

if(strcmp(bom,"read")==0)

readf ();

if(strcmp(bom,"write")==0)

writef();

if(strcmp(bom,"cerrar ")==0)

close();

printf("\nIr al comando de entrada [y|n]:");

if( (t=getchar())=='n')

j=0;

getchar();

}

}

else{

printf("\nNo se puede encontrar este nombre de usuario.\n");

printf("\nInténtalo de nuevo[s/n]: ");

b=getchar();

getchar();}

}

printf("\n") ;

for(i=0;i<75;i++)

printf("=");

printf("\t\t\t \t FileManege Over\n");

for(i=0;i<75;i++)

printf("=");

}