Función SetFileTime (fileapi.h)

Establece la fecha y hora en que se crearon el archivo o el directorio especificados, así como la última vez que se accedió a ellos o se modificaron.

Sintaxis

BOOL SetFileTime(
  [in]           HANDLE         hFile,
  [in, optional] const FILETIME *lpCreationTime,
  [in, optional] const FILETIME *lpLastAccessTime,
  [in, optional] const FILETIME *lpLastWriteTime
);

Parámetros

[in] hFile

Identificador del archivo o directorio. El identificador debe haberse creado mediante la función CreateFile con el derecho de acceso FILE_WRITE_ATTRIBUTES . Para obtener más información, vea Seguridad de archivos y derechos de acceso.

[in, optional] lpCreationTime

Puntero a una estructura FILETIME que contiene la nueva fecha y hora de creación del archivo o directorio. Si la aplicación no necesita cambiar esta información, establezca este parámetro en NULL o en un puntero a una estructura FILETIME que tenga los miembros dwLowDateTime y dwHighDateTime establecidos en 0.

[in, optional] lpLastAccessTime

Puntero a una estructura FILETIME que contiene la nueva fecha y hora de acceso para el archivo o directorio. La última hora de acceso incluye la última vez que se escribió el archivo o directorio en, leer desde o (en el caso de los archivos ejecutables) ejecutar. Si la aplicación no necesita cambiar esta información, establezca este parámetro en NULL o en un puntero a una estructura FILETIME que tenga los miembros dwLowDateTime y dwHighDateTime establecidos en 0.

Para evitar que las operaciones de archivo que usen el identificador especificado modifiquen la última hora de acceso, llame a SetFileTime inmediatamente después de abrir el identificador de archivo y pase una estructura FILETIME que tenga los miembros dwLowDateTime y dwHighDateTime establecidos en 0xFFFFFFFF.

[in, optional] lpLastWriteTime

Puntero a una estructura FILETIME que contiene la nueva fecha y hora de última modificación para el archivo o directorio. Si la aplicación no necesita cambiar esta información, establezca este parámetro en NULL o en un puntero a una estructura FILETIME que tenga los miembros dwLowDateTime y dwHighDateTime establecidos en 0.

Para evitar que las operaciones de archivo que usen el identificador especificado modifiquen la última hora de escritura, llame a SetFileTime inmediatamente después de abrir el identificador de archivo y pase una estructura FILETIME que tenga los miembros dwLowDateTime y dwHighDateTime establecidos en 0xFFFFFFFF.

Valor devuelto

Si la función se realiza correctamente, el valor devuelto es distinto de cero.

Si la función no se realiza correctamente, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.

Comentarios

No todos los sistemas de archivos pueden registrar los tiempos de creación y última hora de acceso y no todos los sistemas de archivos los registran de la misma manera. Por ejemplo, en FAT, el tiempo de creación tiene una resolución de 10 milisegundos, el tiempo de escritura tiene una resolución de 2 segundos y el tiempo de acceso tiene una resolución de 1 día (realmente, la fecha de acceso). Por lo tanto, es posible que la función GetFileTime no devuelva la misma información de tiempo de archivo establecida mediante SetFileTime. NTFS retrasa las actualizaciones de la última hora de acceso de un archivo hasta una hora después del último acceso.

Ejemplos

Para obtener un ejemplo, consulte Cambio de una hora de archivo a la hora actual.

Requisitos

   
Cliente mínimo compatible Windows XP [aplicaciones de escritorio | aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2003 [aplicaciones de escritorio | aplicaciones para UWP]
Plataforma de destino Windows
Encabezado fileapi.h (incluya Windows.h)
Library Kernel32.lib
Archivo DLL Kernel32.dll

Vea también

FILETIME

Tiempos de archivo

GetFileSize

GetFileTime

GetFileType

SetFileInformationByHandle

Funciones de hora