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。ファイル システムでは、「タイムスタンプ」が 01/01/1601 から計算されることはわかっていますが、テスト用に今日作成したファイルがこの日付からのものであることがわかりません。

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 に答える