Comando Copy

Querría saber si existe alguna manera de emular el comportamiento del comando copy de MS-DOS mediante C. Por ejemplo ¿cómo sería lo siguiente?
copy a:\*.* c:\

1 respuesta

Respuesta
1
El comando copy de ms-dos `emula' el comando cp de unix. En unix, la expansión de los wildcards (caracteres comodín) la hace la shell, lo que hace que dicho comando reciba como resultado todos los ficheros ya expandidos, pero en msdos no... eso hace que ésta tenga que hacerse dentro del propio comando...
Tu programa debe analizar el primer parámetro en busca de caracteres comodín (¿el * y el?) Luego debe hacer una búsqueda de todos los ficheros que forman la fuente (el origen de la copia) y crear los ficheros en el destino (que debes asegurarte de que se trata de un directorio y que se permite la creación de ficheros en él) por tanto se trata de un proyecto que escapa con creces a lo que se puede esperar de un mensaje como este. La idea es analizar los parámetros para saber cuantos ficheros han de copiarse y luego emplear algo como esto (con cada uno de los ficheros):
int copy(char *f1, char *f2)
{
FILE *df1, *df2;
int c;
df1 = fopen(f1, "rb");
df2 = fopen(f2, "wb");
if (!df1 || !df2) return -1;
while ((c = fgetc(df1)) != EOF) putc(c, df2);
fclose(df1); fclose(df2);
return 0;
} /* copy */

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas