Browse Source

* Fix TDateTimeInfoRec

Michaël Van Canneyt 2 years ago
parent
commit
0bad315daf
2 changed files with 33 additions and 27 deletions
  1. 29 23
      rtl/objpas/sysutils/filutilh.inc
  2. 4 4
      rtl/win/sysutils.pp

+ 29 - 23
rtl/objpas/sysutils/filutilh.inc

@@ -50,29 +50,6 @@ Type
 
   // The actual unicode search record
 
-  { TDateTimeInfoRec }
-
-  TDateTimeInfoRec = record
-  private
-{$IFDEF SEARCHREC_USEFINDDATA}
-    Data: TFindData platform;
-{$ENDIF }
-{$IFDEF UNIX}
-  {$ifdef USE_STATX}
-    data : tstatx platform;
-  {$else}
-    data : baseunix.stat platform;
-  {$endif USE_STATX}
-{$ENDIF UNIX}
-
-    function GetCreationTime: TDateTime;
-    function GetLastAccessTime: TDateTime;
-    function GetTimeStamp: TDateTime;
-  public
-    property CreationTime: TDateTime read GetCreationTime;
-    property LastAccessTime: TDateTime read GetLastAccessTime;
-    property TimeStamp: TDateTime read GetTimeStamp;
-  end;
   { TUnicodeSearchRec }
 
   TUnicodeSearchRec = Record
@@ -167,6 +144,35 @@ Type
   TSymLinkRec = TRawbyteSymLinkRec;
 {$ENDIF}
 
+  { TDateTimeInfoRec }
+
+  TDateTimeInfoRec = record
+  private
+{$IFDEF SEARCHREC_USEFINDDATA}
+    Data: TFindData platform;
+
+{$ELSE}
+  {$IFDEF UNIX}
+
+    {$IFDEF USE_STATX}
+    data : tstatx platform;
+    {$ELSE}
+    data : baseunix.stat platform;
+    {$ENDIF USE_STATX}
+  {$ELSE}
+  
+    data : TSearchRec;
+  {$ENDIF}
+{$ENDIF SEARCHREC_USEFINDDATA}
+
+    function GetCreationTime: TDateTime;
+    function GetLastAccessTime: TDateTime;
+    function GetTimeStamp: TDateTime;
+  public
+    property CreationTime: TDateTime read GetCreationTime;
+    property LastAccessTime: TDateTime read GetLastAccessTime;
+    property TimeStamp: TDateTime read GetTimeStamp;
+  end;
 
 Const
   { File attributes }

+ 4 - 4
rtl/win/sysutils.pp

@@ -697,13 +697,13 @@ end;
 function FileGetDateTimeInfo(const FileName: string;
   out DateTime: TDateTimeInfoRec; FollowLink: Boolean = True): Boolean;
 var
-  Data: TWin32FindData;
-  FN: string;
+  Data: TWin32FindDataW;
+  FN: unicodestring;
 begin
   Result := False;
   SetLastError(ERROR_SUCCESS);
   FN:=FileName;
-  if Not GetFileAttributesEx(PAnsiChar(FileName), GetFileExInfoStandard, @Data) then
+  if Not GetFileAttributesExW(PWideChar(FileName), GetFileExInfoStandard, @Data) then
     exit;
   if ((Data.dwFileAttributes and faSymlink)=faSymlink) then
     begin
@@ -712,7 +712,7 @@ begin
       FN:=FollowSymlink(FileName);
       if FN='' then 
         exit; 
-      if not GetFileAttributesEx(PAnsiChar(FN), GetFileExInfoStandard, @Data) then
+      if not GetFileAttributesExW(PWideChar(FN), GetFileExInfoStandard, @Data) then
         exit;
       end;
     end;