_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Sab 06 Dic, 2003 8:10 pm Asunto: |
|
|
Hola petit:
Si estas usando BCB6 tienes la función "FileSetDate". En las anteriores también la tienes, pero con distintos argumentos teniendo que usar un par de líneas mas de código. Quizás en BCB5 también, no recuerdo. Un ejemplo:
| Código: | TDateTime fecha("31/12/2005 12:34");
// Devuelve 0 si todo fue bien, sino devuelve el código del error
int ret = FileSetDate("c:\\prueba.txt", fecha.FileDate()); |
Otro ejemplo usando el API:
| Código: | // Convertimos un TDateTime en SYSTEMTIME
// Esto lo podemos hacer de muchas maneras, lo que necesitamos
// al final es obtener la fecha y hora como FILETIME.
TDateTime fecha("31/12/2010 01:23");
unsigned short dia, mes, anyo, hora, minuto, segundo, milisegundo;
fecha.DecodeDate(&anyo, &mes, &dia);
fecha.DecodeTime(&hora, &minuto, &segundo, &milisegundo);
SYSTEMTIME st = { anyo, mes, fecha.DayOfWeek(), dia,
hora, minuto, segundo, milisegundo };
FILETIME ft;
SystemTimeToFileTime(&st, &ft);
// Abrimos el archivo y cambiamos las fechas de creación,
// ultimo acceso y/o modificación
HANDLE file = CreateFile("c:\\prueba.txt", GENERIC_WRITE,
0, 0, OPEN_EXISTING, 0, 0);
// Devuelve un valor distinto de 0 si todo fue bien
// ó 0 en caso contrario
BOOL ret = SetFileTime(file,
0, // fecha y hora de creación
0, // " ultimo acceso
&ft); // " modificación
CloseHandle(file); |
Saludos:
_Leo |
|