Преглед изворни кода

Merge pull request #1008 from Azaezel/alpha41/timeTrouble

fileModifiedTime cleanups
Brian Roberts пре 2 година
родитељ
комит
26adb11e49
2 измењених фајлова са 18 додато и 11 уклоњено
  1. 1 1
      Engine/source/platformWin32/winTime.cpp
  2. 17 10
      Engine/source/platformWin32/winVolume.cpp

+ 1 - 1
Engine/source/platformWin32/winTime.cpp

@@ -93,7 +93,7 @@ String Platform::localTimeToString( const LocalTime &lt )
    outStr += "\t";
 
    result = GetTimeFormat( LOCALE_USER_DEFAULT,
-                           0,
+                           TIME_FORCE24HOURFORMAT,
                            &st,
                            NULL,
                            (LPTSTR)buffer,

+ 17 - 10
Engine/source/platformWin32/winVolume.cpp

@@ -138,21 +138,28 @@ static void _CopyStatAttributes(const WIN32_FIND_DATAW& info, FileNode::Attribut
    if (info.dwFileAttributes & FILE_ATTRIBUTE_READONLY)
       attr->flags |= FileNode::ReadOnly;
 
+   SYSTEMTIME st, stLocal;
+   FILETIME ftLocal;
+
    attr->size = info.nFileSizeLow;
-   attr->mtime = Win32FileTimeToTime(
-      info.ftLastWriteTime.dwLowDateTime,
-      info.ftLastWriteTime.dwHighDateTime);
 
-   attr->atime = Win32FileTimeToTime(
-      info.ftLastAccessTime.dwLowDateTime,
-      info.ftLastAccessTime.dwHighDateTime);
+   FileTimeToSystemTime(&(info.ftLastWriteTime), &st);
+   SystemTimeToTzSpecificLocalTime(NULL, &st, &stLocal);
+   SystemTimeToFileTime(&stLocal, &ftLocal);
+   attr->mtime = Win32FileTimeToTime(ftLocal.dwLowDateTime, ftLocal.dwHighDateTime);
 
-   attr->ctime = Win32FileTimeToTime(
-      info.ftCreationTime.dwLowDateTime,
-      info.ftCreationTime.dwHighDateTime);
-}
+   FileTimeToSystemTime(&(info.ftLastAccessTime), &st);
+   SystemTimeToTzSpecificLocalTime(NULL, &st, &stLocal);
+   SystemTimeToFileTime(&stLocal, &ftLocal);
+   attr->atime = Win32FileTimeToTime(ftLocal.dwLowDateTime, ftLocal.dwHighDateTime);
 
 
+   FileTimeToSystemTime(&(info.ftCreationTime), &st);
+   SystemTimeToTzSpecificLocalTime(NULL, &st, &stLocal);
+   SystemTimeToFileTime(&stLocal, &ftLocal);
+   attr->ctime = Win32FileTimeToTime(ftLocal.dwLowDateTime, ftLocal.dwHighDateTime);
+}
+
 //-----------------------------------------------------------------------------
 
 bool Win32FileSystemChangeNotifier::internalAddNotification( const Path &dir )