Universidad de Costa Rica
|
|
En esta trabajo usted escribirá un programa que permite sincronizar dos subdirectorios, de manera que el segundo quede como copia exacta del primero, pero tratando de minimizar la cantidad de copias de archivos.
En la Figura 1 se muestra dos directorios, a la iquierda y a la derecha, que corresponden a los datos almacenados en el disco duro y en una unidad de respaldo. Para sincronizarlos, hay que lograr que el directorio de la derecha, de respaldo, contenga exactamente los mismos archivos que el directorio fuente, que está a la izquierda. Una forma de sincronizar los dos directorios usando fuerza bruta es borrar completamente el directorio de la derecha, y luego copiarle encima todo el contenido del directorio de la izquierda, como sigue:
C:\> D: D:\> CD D:\CD\Respaldo\2001-1 D:\CD\Respaldo\2001-1> deltree /y . D:\CD\Respaldo\2001-1> xcopy /e /s C:\CI-1201\2001-1 D:\CD\Respaldo\2001-1\
Usar su programa
SYNC.exe
es una mejor solución. Para ejecutar
su progama hay que usar el siguiente comando:
usted obtendrá creará un archivo llamadoC:\> CD \CI-1201\2001-1 C:\CI-1201\2001-1> SYNC.exe . "D:\CD\Respaldo\2001-1"
SYNC.bat
que contendrá las siguientes
instrucciones:
El archivo de comandos SYNC.bat
de la
Figura 2 es una mejor alternativa que
borrar y copiar todo de nuevo, porque se evita copiar aquellos
archivos que son comunes a los dos directorios. La idea del
programa
SYNC.exe
es tratar de minimizar la cantidad de copias,
pues se supone cada día quien hace el respaldo cambia pocos
archivos, por lo que casi todos los archivos en el directorio
fuente y de respaldo coincidirán. Al ejecutar
SYNC.bat
permite se logra que actualizar los pocos
archivos que han sido actualizados en el directorio fuente, y tal
vez renombrar algunos si hace falta. Al examinar la
implementación de SYNC.bat
se puede notar lo
siguiente:
TOC.HTM
a letras minúsculas.
SYNC.bat
se borra primero y luego copia el
archivo P2-EA-6.HTM
.SYNC.bat
se borran los
archivos p2-ea-1.htm
, p2-ea-2.htm
y
p2-ea-f.htm
. Para ayudarle a aplicar los conceptos de abstracción, ocultamiento de datos y modularización usted deberá acatar los siguientes requerimientos en su implementación:
friend
en ninguna de sus
clases, salvo que la lista es una clase amiga de su clase
nodo.public
en sus
clases.
La idea de implementar el programa SYNC.exe
no es
nueva, aunque tal vez sí lo sea hacerlo generando un
archivo de comandos SYNC.bat
. Algunos utilitarios
para hacer este tipo de trabajo están disponibles en
Internet:
ftp://ftp.simtel.net/pub/simtelnet/win95/fileutl/fsync211.zip
ftp://ftp.simtel.net/pub/simtelnet/msdos/dirutl/sync10.zip
|
Adolfo Di Mare <adolfo@di-mare.com>.
|