Universidad de Costa Rica
|
|
Con frecuencia es difícil determinar si las fotos de la
cámara ya fueron copiadas a las carpetas que forman el
álbum de fotos, almacenado en el disco duro. En las
cámaras, frecuentemente existe una carpeta 'DCIM
'
que contiene, en directorios separados, todas las fotos, cuyos nombres
son consecutivos:
DCIM +==>IMS0001 | +-- dsc00200.jpg | +-- dsc00201.jpg | +-- dsc00202.jpg | +-- dsc00203.jpg | +-- dsc00204.jpg +==>IMS0002 | +-- dsc00205.jpg | +-- dsc00206.jpg | +-- dsc00207.jpg +==>IMS0002
En este ejemplo, la carpeta de fotos de la cámara se llama
'DCIM
' y contiene 3 carpetas llamadas
'IMS0001
', 'IMS0002
' e 'IMS0002
'
en las que están almacenadas las fotos cuyos nombre son
'dsc00200.jpg
' hasta 'dsc00207.jpg
'.
Debido a la votatilidad de las memorias flash usadas para fotografiar, lo natural es guardar respaldo de las fotos en el disco duro. En muchas ocasiones conviene usar una carpeta para almacenar las fotos que fueron tomadas en una ocasión, como se muestra a continuación:
ALBUM +==>2015-03 Boda Juana | +-- dsc00200.jpg | +-- dsc00201.jpg | +-- dsc00202.jpg | +-- dsc00203.jpg | +-- dsc00204.jpg +==>2015-05 Puerto | +-- dsc00205.jpg | +-- dsc00206.jpg | +-- dsc00207.jpg +==>2015-06 Paso Canoas
A veces las carpetas del álbum de fotos se obtienen a partir de las carpetas de la cámara, pero con frecuencia ocurre que la fotos quedan reacomodadas en el álbum, como por ejemplo en este caso:
ALBUM +==>2015-03 Boda Juana | +-- dsc00200.jpg | +-- dsc00201.jpg | +-- dsc00203.jpg | +-- dsc00205.jpg +==>2015-06 Paso Canoas | +-- dsc00202.jpg | +-- dsc00204.jpg | +-- dsc00206.jpg | +-- dsc00207.jpg +==>etc ...
Además, en algunas ocasiones conviene cambiarle el nombre a las fotos para identificarlas adecuadamente:
ALBUM +==>2015-03 Boda Juana | +-- dsc00200 Dele Beso.jpg | +-- dsc00201 El ramo.jpg | +-- dsc00203 Se cayó la suegra.jpg | +-- dsc00205 Guaro Guaro.jpg +==>2015-06 Paso Canoas | +-- dsc00202 Reloj.jpg | +-- dsc00204 Copias Rolex.jpg | +-- dsc00206 Casio de 2da.jpg | +-- dsc00207 Omega.jpg +==>etc ...
Tanto renombrar como reacomodar de fotos hacen que, con el tiempo, sea difícil saber si ya todas las fotos fueron copiadas en el álbum, pues a veces tanta manipulación induce a errores que resulta en la pérdida de fotos importantes. En estos casos, es conveniente contar con un programa que pueda determinar, a partir del nombre de cada foto, si fue o no copiada al álbum de fotos del disco duro.
Su programa debe trabajar con 2 carpetas, por ejemplo
'J:\DCIM
' y 'D:\LIB\ALBUM
', para sacar de
ellas 2 todos los nombres de archivos de fotos, que pueden estar en
alguna de esas 2 carpetas o en sus sub-carpetas. Obtenga 2 listas con
estos nombres de archivos y compárelos, de manera que obtenga 3
grupos: los que aparecen en ambos, los que aparecen solo en la primera
carpeta y los que solo aparecen en la segunda. Para obtener los nombres
de archivos use la bilioteca 'readDir
' vista en clase y las
listas
std::list<>
de la biblioteca estándar de C++.
Para manejar el caso en que algunas fotos hayan sido renombradas,
separe en 2 partes el nombre de cada foto. Por ejemplo, el nombre
"dsc00200 Dele Beso.jpg
" quedaría separado en [
'dsc00200
' | "Dele Beso.jpg
" ] de manera que
la comparación de nombres de carpeta se pueda hacer utilizanado
'dsc00200
' y desechando "Dele Beso.jpg
".
Recuerde ignorar las diferencias entre mayúsculas y
minúsculas en los nombres de archivo.
Entregue su tarea por correo electrónico, como lo hizo anteriormente.
Tiempo de entrega: | 7 días | |
Modalidad: | En parejas |
Adolfo Di Mare <adolfo@di-mare.com>.
|