setFileTime 函数 (fileapi.h)

设置文件或目录的创建、上次访问和上次修改日期和时间。

语法

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

参数

[in] hFile

文件或目录的句柄。 句柄必须已使用 CreateFile 函数创建,具有 FILE_WRITE_ATTRIBUTES 访问权限。 有关详细信息,请参阅 文件安全和访问权限

[in, optional] lpCreationTime

指向 FILETIME 结构的指针,该结构包含文件或目录的新创建日期和时间。 如果应用程序不需要更改此信息,请将此参数设置为 NULL 或指向 FILETIME 结构的指针,该结构同时将 dwLowDateTimedwHighDateTime 成员都设置为 0

[in, optional] lpLastAccessTime

指向 FILETIME 结构的指针,该结构包含文件或目录的新上次访问日期和时间。 上次访问时间包括在可执行文件) 运行时,上次写入、读取或 (文件或目录的时间。 如果应用程序不需要更改此信息,请将此参数设置为 NULL 或指向 FILETIME 结构的指针,该结构同时将 dwLowDateTimedwHighDateTime 成员都设置为 0

若要防止使用给定句柄的文件操作修改上次访问时间,请在打开文件句柄后立即调用 SetFileTime,并传递将 dwLowDateTimedwHighDateTime 成员都设置为 0xFFFFFFFFFILETIME 结构。

[in, optional] lpLastWriteTime

指向 FILETIME 结构的指针,该结构包含文件或目录的新上次修改日期和时间。 如果应用程序不需要更改此信息,请将此参数设置为 NULL 或指向 FILETIME 结构的指针,该结构同时将 dwLowDateTimedwHighDateTime 成员都设置为 0

若要防止使用给定句柄的文件操作修改上次写入时间,请在打开文件句柄后立即调用 SetFileTime,并传递将 dwLowDateTimedwHighDateTime 成员都设置为 0xFFFFFFFFFILETIME 结构。

返回值

如果该函数成功,则返回值为非零值。

如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。

注解

并非所有文件系统都可以记录创建和上次访问时间,并非所有文件系统都以相同的方式记录它们。 例如,在 FAT 上,创建时间的分辨率为 10 毫秒,写入时间的分辨率为 2 秒,访问时间的分辨率为 1 天, (访问日期) 。 因此, GetFileTime 函数可能不会返回使用 SetFileTime 设置的相同文件时间信息。 NTFS 将文件上次访问时间的更新延迟到上次访问后最多一小时。

示例

有关示例,请参阅 将文件时间更改为当前时间

要求

   
最低受支持的客户端 Windows XP [桌面应用 | UWP 应用]
最低受支持的服务器 Windows Server 2003 [桌面应用 | UWP 应用]
目标平台 Windows
标头 fileapi.h (包括 Windows.h)
Library Kernel32.lib
DLL Kernel32.dll

另请参阅

FILETIME

文件时间

GetFileSize

GetFileTime

GetFileType

SetFileInformationByHandle

时间函数