Un problema con las fechas de los archivos
Hola a tod@s,
He implementado una aplicación donde guardo una serie de documentos con las fechas de creación, modificación y ultimo acceso, utilizando para ello este código ( sacado de la web de Neftali ). He aquí una parte de él. Cita:
* En una tabla cada usuario guarda los directorios donde guardan los documentos * Con un clic a un boton la aplicación va al interior de los directorios y selecciona los documentos que se guardan en otra tabla ( nombre, fecha creacion, etc..) Hasta aqui todo correcto, pero si uno de los usuarios vuelve a pulsar el boton, la aplicación borra los documentos anteriormente guardados por él, y graba los nuevos pero la fecha de creación la graba con una fecha del siglo pasado, ¿ por que pierde este dato ? Lo curioso es que si borra los directorios, los vuelve a grabar y pulsa el boton para actualizar los documentos, vuelve a aparecer la fecha correcta. ¿ Me podeis decir como puedo solucionar esto ? Os espero.... Un saludo |
Hola, antes de nada decirte, que con 90 mensajes en los foros, ya no eres un novato y deberías poner TAG's cuando añadas código Delphi. Edita tu mensaje y añádelos, por favor.
Cita:
Por lo que explicas, parece que sólo ocurre cuando "das una segunda pasada", revisa las inicializaciones de variables o ejecuta paso a paso el código para ver qué valor se rellena en las fechas la segunda vez. |
Hola Neftali,
¡¡ Arreglados los mensajes !! Te envío el código completo del procedimiento:
Si, es cuando doy una segunda pasada, y la fecha de creación que me da es 30/diciembre/1899 ????. ¿ Sabes que motivo puede ocasionar esto ? Gracias por tu ayuda y por tu web Un saludo |
Gracias por corregir los mensajes. Un comentario sólo, ya que te has tomado la molestia de cambiarlos, mejor hacerlo bien del todo; En lugar de usar los TAG's de QUOTE puedes utilizar los TAG's de DELPHI (o ponerlos con el último botón del editor en modo avanzado).
Mira la diferencia entre tus dos ultimos mensajes; En uno he cambiado los TAG's y he puesto los de DELPHI, de esa forma se formatea la sintaxis correctamete. |
Cita:
|
Esquema del funcionamiento:
- En una tabla tengo los path de unos directorios - Al darle un clic de botón,( boton de actualizar), mi programa lee el contenido de los directorios y graba el nombre de los ficheros y su fecha de creación en otra tabla. Cuando lo hago por primera vez no hay ningun problema, pero si le doy al boton,( boton de actualizar), por segunda vez ------ FileHandle siempre es <0 -----( porción de programa que hay debajo ), y las fechas son del 30/12/1899 ¿ Se puede solucionar esto ?
Saludos |
Si estas usando FindFirst para encontrar los archivos, tienes el campo FindData, y dentro de ella tienes la fecha de creación, usando FiletimeToDateTime ya tienes la fecha exacta.
Ten en cuenta el sistema operativo y el sistema de archivos, En NTFS si se recaba la información de todas las fechas; aunque puede desabilitarse por windows la "fecha de última modificación". En FAT no se recaban todas las fechas. Aqui he usado un TStringList (Lista) para almacenar los valores como si de un archivo TiniFile se tratara, de esa forma se recuepera facilmente las fechas y nombres de archivo.
|
Cita:
Prueba a mostrarlo con esto:
|
|
La franja horaria es GMT +2. Ahora son las 10:58:44. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi