21xrx.com
2025-04-13 01:47:22 Sunday
文章检索 我的文章 写文章
C++获取文件修改时间
2023-06-24 04:23:05 深夜i     30     0
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系统中,获取文件的修改时间都是非常简单的。通过获取文件的修改时间,我们可以更好地了解文件的使用情况,为我们处理文件提供了更好的依据。

  
  

评论区

请求出错了