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 结构的指针,该结构同时将 dwLowDateTime 和 dwHighDateTime 成员都设置为 0
。
[in, optional] lpLastAccessTime
指向 FILETIME 结构的指针,该结构包含文件或目录的新上次访问日期和时间。 上次访问时间包括在可执行文件) 运行时,上次写入、读取或 (文件或目录的时间。 如果应用程序不需要更改此信息,请将此参数设置为 NULL
或指向 FILETIME 结构的指针,该结构同时将 dwLowDateTime 和 dwHighDateTime 成员都设置为 0
。
若要防止使用给定句柄的文件操作修改上次访问时间,请在打开文件句柄后立即调用 SetFileTime,并传递将 dwLowDateTime 和 dwHighDateTime 成员都设置为 0xFFFFFFFF
的 FILETIME 结构。
[in, optional] lpLastWriteTime
指向 FILETIME 结构的指针,该结构包含文件或目录的新上次修改日期和时间。 如果应用程序不需要更改此信息,请将此参数设置为 NULL
或指向 FILETIME 结构的指针,该结构同时将 dwLowDateTime 和 dwHighDateTime 成员都设置为 0
。
若要防止使用给定句柄的文件操作修改上次写入时间,请在打开文件句柄后立即调用 SetFileTime,并传递将 dwLowDateTime 和 dwHighDateTime 成员都设置为 0xFFFFFFFF
的 FILETIME 结构。
返回值
如果该函数成功,则返回值为非零值。
如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 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 |