21xrx.com
2024-12-23 02:52:20 Monday
登录
文章检索 我的文章 写文章
C++:获取文件的创建时间
2023-06-24 06:48:44 深夜i     --     --
C++ 文件 创建时间

在C++中,我们需要使用一些操作系统特定的API函数才能够获取文件的创建时间。首先,我们需要包含Windows.h头文件,该头文件中包含了Windows API的所有函数和定义。

接下来,我们需要使用GetFileTime函数来获取文件的创建时间。该函数的原型如下:

BOOL GetFileTime(

 HANDLE hFile,

 LPFILETIME lpCreationTime,

 LPFILETIME lpLastAccessTime,

 LPFILETIME lpLastWriteTime

);

我们只需要传递文件句柄和一个指向FILETIME结构体的指针,该结构体将用于返回文件的创建时间。以下是一个示例代码:

#include

#include

#include

int main()

{

  HANDLE file_handle = CreateFile("example.txt", GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);

  if (file_handle == INVALID_HANDLE_VALUE)

  {

    std::cerr << "Error opening file\n";

    return 1;

  }

  FILETIME creation_time;

  if (GetFileTime(file_handle, &creation_time, NULL, NULL) == 0)

  {

    std::cerr << "Error getting file time\n";

    CloseHandle(file_handle);

    return 1;

  }

  CloseHandle(file_handle);

  SYSTEMTIME creation_system_time;

  if (FileTimeToSystemTime(&creation_time, &creation_system_time) == 0)

  {

    std::cerr << "Error converting file time to system time\n";

    return 1;

  }

  char str_buffer[256];

  sprintf_s(str_buffer, sizeof(str_buffer), "File created at %02d:%02d:%02d on %02d/%02d/%d\n",

    creation_system_time.wHour, creation_system_time.wMinute, creation_system_time.wSecond,

    creation_system_time.wDay, creation_system_time.wMonth, creation_system_time.wYear);

  std::cout << str_buffer;

  return 0;

}

在上述代码中,我们首先使用CreateFile函数打开文件,并获取了文件句柄。然后,我们通过调用GetFileTime函数来读取文件的创建时间。接着,我们将返回的FILETIME结构体转换为SYSTEMTIME结构体,以便我们可以使用sprintf_s函数输出文件的创建时间。最后,我们通过CloseHandle函数关闭文件句柄。

总的来说,通过调用Windows API函数可轻松地从C++中读取文件的创建时间。

  
  
下一篇: C++变参基类

评论区

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