修改文件时间

来源:互联网 发布:杭州湖畔网络 编辑:程序博客网 时间:2024/05/17 05:05

 HANDLE hFile;
 FILETIME ftCreationTime;
 FILETIME ftLastAccessTime;
 FILETIME ftLastWriteTime;

 SYSTEMTIME stCreationTime;
 SYSTEMTIME stLastAccessTime;
 SYSTEMTIME stLastWriteTime;

 hFile = CreateFile("c://1.txt",                   //LPCTSTR lpFileName,
    GENERIC_READ|GENERIC_WRITE,         //DWORD dwDesiredAccess,
    FILE_SHARE_READ|FILE_SHARE_DELETE,
    NULL,                //LPSECURITY_ATTRIBUTES lpSecurityAttributes,
    OPEN_ALWAYS,
    FILE_FLAG_BACKUP_SEMANTICS,         //DWORD dwFlagsAndAttributes,
    NULL);

 if (hFile == INVALID_HANDLE_VALUE)
 {
  ASSERT(FALSE);
  return ;
 }
 else
 {
  GetFileTime(
   hFile,
   &ftCreationTime,
   &ftLastAccessTime,
   &ftLastWriteTime
   ); 
 }

 FileTimeToSystemTime(
  &ftCreationTime,
  &stCreationTime
  );
 FileTimeToSystemTime(
  &ftLastAccessTime,
  &stLastAccessTime
  );
 FileTimeToSystemTime(
  &ftLastWriteTime,
  &stLastWriteTime
  );

 TRACE("The stCreationTime :%d-%d-%d %d:%d:%d/n",
  stCreationTime.wYear,
  stCreationTime.wMonth,
  stCreationTime.wDay,
  stCreationTime.wHour,
  stCreationTime.wMinute,
  stCreationTime.wSecond);
 TRACE("The stLastAccessTime:%d-%d-%d %d:%d:%d/n",
  stLastAccessTime.wYear,
  stLastAccessTime.wMonth,
  stLastAccessTime.wDay,
  stLastAccessTime.wHour,
  stLastAccessTime.wMinute,
  stLastAccessTime.wSecond);
 TRACE("The stLastWriteTime:%d-%d-%d %d:%d:%d/n",
  stLastWriteTime.wYear,
  stLastWriteTime.wMonth,
  stLastWriteTime.wDay,
  stLastWriteTime.wHour,
  stLastWriteTime.wMinute,
  stLastWriteTime.wSecond);

 // 设置文件时间
  stCreationTime.wYear--;
  stLastAccessTime.wYear--;
  stLastWriteTime.wYear--;
  
 SystemTimeToFileTime(
  &stCreationTime,
  &ftCreationTime
  );
 SystemTimeToFileTime(
  &stLastAccessTime,
  &ftLastAccessTime
  );
 SystemTimeToFileTime(
  &stLastWriteTime,
  &ftLastWriteTime
  );
  
 SetFileTime(
  hFile,
  &ftCreationTime,
  &ftLastAccessTime,
  &ftLastWriteTime
  );
 
  
 CloseHandle(hFile);