Foros - Stratos

Programadores => General Programadores => Mensaje iniciado por: XÑA en 12 de Abril de 2011, 08:13:00 PM

Título: ¿Cómo puedo saber la fecha de creación?
Publicado por: XÑA en 12 de Abril de 2011, 08:13:00 PM
Yo tenía un programita en C# que hacía lo siguiente: Me cogía la fecha de creación de un archivo y me lo copiaba en otra carpeta, utilizando como nombre la carpeta esta fecha de creación.
¿Y para qué? Pues para las fotos. Hago fotos en varios días. Un día las quiero copiar al ordenador, pero no quiero copiarlas todas a una carpeta, lo que quiero es organizarlas por carpetas, de forma que el nombre de la carpeta sea la fecha en que se hizo la foto.
Hago el programa en C# y perfecto. Utilizo File.GetCreationTime(string fullPath) y perfecto.

Nota: En realidad no puedo copiar de la cámara al disco duro, porqué no es un 'path' válido. Entonces tengo una carpeta que llamo 'traspaso', abro la cámara y copio los archivos a esa carpeta. Luego ejecuto el programa sobre esa carpeta ya que al copiar los archivos Windows me respeta la fecha de creación

Pero me paso a Windows 7 y..¡no funciona! Depuro y miro todos los posibles campos AccesTime, LastCreationTime... y todo me devuelve lo mismo. Pero lo filpante es que en el explorador de archivos de W7, veo el campo Fecha y pone la Fecha que yo quiero leer, que es la de la fecha en la que se creó el archivo en la cámara...¡Pero no hay forma de recuperar ese valor!  Oo

¿Alguna idea?  ::)

Gracias
Título: Re: ¿Cómo puedo saber la fecha de creación?
Publicado por: Vicente en 12 de Abril de 2011, 09:50:59 PM
La leche que raro, a ver si luego puedo investigar un rato...
Título: Re: ¿Cómo puedo saber la fecha de creación?
Publicado por: shephiroth en 13 de Abril de 2011, 12:57:57 AM
Solo es una curiosidad, pero has probado a limpiar el proyecto y compilarlo de cero??

Segun MSDN: "Este método puede devolver un valor inexacto, debido a que usa funciones nativas cuyos valores el sistema operativo no puede actualizar continuamente." Por eso preguntaba lo de limpiar el proyecto. El modo debug siempre guarda ficheros intermedios, y si el proyecto lo "creaste" fuera de windows 7 puede que te este haciendo alguna guarrada.

Fuente http://msdn.microsoft.com/es-es/library/system.io.file.getcreationtime.aspx
Título: Re: ¿Cómo puedo saber la fecha de creación?
Publicado por: XÑA en 13 de Abril de 2011, 09:17:00 AM
Sí, he limpiado el proyecto.  :D
Título: Re: ¿Cómo puedo saber la fecha de creación?
Publicado por: jano en 13 de Abril de 2011, 05:06:00 PM
¿Y probar con otros archivos que no sean esas fotos?

Como dice Shephiroth esos métodos son inexactos y poco creibles en cuanto el archivo es mínimamente tocado.

¿Te pasaste a Windows7 en el mismo ordenador tras formatear? ¿hiciste una copia de seguridad o copiaste los datos en un dispositivo externo? cualquier retoque del archivo puede corromper esos campos.
Título: Re: ¿Cómo puedo saber la fecha de creación?
Publicado por: XÑA en 14 de Abril de 2011, 04:30:23 PM
Lo raro es que en el explorador de archivos, me parece la fecha correcta, pero es que no hay forma humana de encontrar la propiedad en File o FileInfo que me de estos valores.
???
Título: Re: ¿Cómo puedo saber la fecha de creación?
Publicado por: Mars Attacks en 15 de Abril de 2011, 05:32:26 PM
Probablemente esa información esté contenida en la metainformación del propio archivo de imagen, no en el archivo de sistema, y Windows reconozca el archivo de imagen y busque dentro su metainformación (igual que probablemente también te dirá el diafragma y la velocidad de disparo de la foto, etc.).
Título: Re: ¿Cómo puedo saber la fecha de creación?
Publicado por: XÑA en 18 de Abril de 2011, 12:24:17 PM
Vaya, es posible. Le echaré un vistazo. Gracias!!  :D