【问题标题】:How can I use C to change the last modified date of a file in Windows?如何使用 C 更改 Windows 中文件的最后修改日期?
【发布时间】:2008-11-11 03:22:41
【问题描述】:

是否有可以更改 Windows 中文件或目录的最后修改日期的 C 函数调用?

【问题讨论】:

    标签: windows winapi file


    【解决方案1】:

    您可以使用SetFileTime 函数,对于目录,您必须使用带有FILE_FLAG_BACKUP_SEMANTICS 标志的CreateFile 函数来获取目录句柄并将其用作SetFileTime 的文件句柄参数,如下所示:

    hFolder = CreateFile(path, GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_EXISTING,
    FILE_ATTRIBUTE_DIRECTORY | FILE_FLAG_BACKUP_SEMANTICS, NULL);
    

    【讨论】:

    • 谢谢我错过了 FILE_FLAG_BACKUP_SEMANTICS,但你节省了我一天
    【解决方案2】:

    使用 SetFileTime:

    BOOL WINAPI SetFileTime(
      __in      HANDLE hFile,
      __in_opt  const FILETIME *lpCreationTime,
      __in_opt  const FILETIME *lpLastAccessTime,
      __in_opt  const FILETIME *lpLastWriteTime
    );
    

    它在winbase.h中,所以你只需要包含windows.h

    编辑:我粘贴了错误的函数。

    【讨论】:

      【解决方案3】:

      是的。您可以使用SetFileTime API 函数。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-05-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-07
        • 2011-03-22
        • 2011-11-25
        相关资源
        最近更新 更多