21xrx.com
2024-11-22 11:04:31 Friday
登录
文章检索 我的文章 写文章
C++获取文件修改时间
2023-06-24 04:23:05 深夜i     --     --
C++ 文件 修改时间

在C++编程中,我们经常需要获取文件的修改时间来进行一些操作,例如判断文件是否过期或者生成一份文件修改时间的记录。在本文中,我们将介绍如何使用C++获取文件的修改时间。

获取文件修改时间的方法主要依赖于操作系统。在Windows系统中,我们可以使用GetFileTime函数来获取文件的修改时间。该函数需要传入文件句柄和一个包含文件时间信息的结构体,其中文件时间信息包括创建时间、访问时间和修改时间,我们只需要获取其中的修改时间即可。下面是获取文件修改时间的代码示例:


#include <windows.h>

#include <iostream>

int main()

{

  HANDLE file = CreateFile("test.txt", GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);

  FILETIME fileTime;

  if (GetFileTime(file, NULL, NULL, &fileTime))

  {

    // 将文件时间转换成系统时间

    SYSTEMTIME systemTime;

    if (FileTimeToSystemTime(&fileTime, &systemTime))

    

      std::cout << "文件最近修改时间:" << systemTime.wYear << "年"

        << systemTime.wMonth << "月"

        << systemTime.wDay << "日 "

        << systemTime.wHour << "点"

        << systemTime.wMinute << "分"

        << systemTime.wSecond << "秒" << std::endl;

    

  }

  CloseHandle(file);

  return 0;

}

在Linux系统中,我们可以使用stat函数来获取文件的修改时间。该函数需要传入文件路径和一个包含文件信息的结构体,其中包含了文件的修改时间和其他信息。下面是获取文件修改时间的代码示例:


#include <sys/stat.h>

#include <iostream>

int main()

{

  struct stat fileStat;

  if (stat("test.txt", &fileStat) == 0)

  {

    std::cout << "文件最近修改时间:" << ctime(&fileStat.st_mtime);

  }

  return 0;

}

无论是在Windows还是Linux系统中,获取文件的修改时间都是非常简单的。通过获取文件的修改时间,我们可以更好地了解文件的使用情况,为我们处理文件提供了更好的依据。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复