0
  HANDLE f = CreateFile(filepath,GENERIC_ALL,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
          FILETIME create, access, write;

          GetFileTime(f,&create,&access,&write);
          std::cout << "debug " << std::endl;
          SYSTEMTIME s;
          FileTimeToSystemTime(&create,&s);
          displayTime(s);

在这段代码中,我试图获取一个文件并显示它的创建/上次访问/上次修改时间。所以我得到一个 FILETIME 并将其转换为 SYSTEMTIME 并显示它。

问题,目录中的所有文件都有相同的日期:01/01/1601。我知道在文件系统中,“时间戳”是从 1601 年 1 月 1 日开始计算的,但我不明白我今天为测试创建的文件是从这个日期开始的。

4

1 回答 1

2

参数 OPEN_EXISTING 表示仅打开现有文件。它不会创建文件,这解释了为什么修改的时间是统一的。

改用 CREATE_ALWAYS 或类似的。

请参阅http://msdn.microsoft.com/en-us/library/windows/desktop/aa363858(v=vs.85).aspx

于 2013-06-19T11:28:59.053 回答