Skip to content

Commit 9254b1c

Browse files
committed
[Files] Linux fixes
1 parent 6f729e6 commit 9254b1c

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

Quick.Files.pas

+30
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,9 @@ TDirItem = record
263263
function FindDelimiter(const Delimiters, S: string; StartIdx: Integer = 1): Integer;
264264
{$ENDIF}
265265
function ConvertDateTimeToFileTime(const DateTime: TDateTime; const UseLocalTimeZone: Boolean): TFileTime;
266+
{$IFDEF MSWINDOWS}
266267
function ConvertFileTimeToDateTime(const FileTime : TFileTime; const UseLocalTimeZone : Boolean) : TDateTime;
268+
{$ENDIF}
267269
procedure SetDateTimeInfo(const Path: string; const CreationTime, LastAccessTime, LastWriteTime: PDateTime; const UseLocalTimeZone: Boolean);
268270
function GetFiles(const Path : string; Recursive : Boolean) : TArray<TDirItem>; overload;
269271
procedure GetFiles(const Path : string; aAddToList : TDirItemAddProc; Recursive : Boolean); overload;
@@ -1309,8 +1311,12 @@ function GetFiles(const Path : string; Recursive : Boolean) : TArray<TDirItem>;
13091311
diritem.Name := rec.Name;
13101312
diritem.IsDirectory := False;
13111313
diritem.Size := rec.Size;
1314+
{$IFNDEF LINUX}
13121315
diritem.CreationDate := ConvertFileTimeToDateTime(rec.FindData.ftCreationTime,True);
13131316
diritem.LastModified := ConvertFileTimeToDateTime(rec.FindData.ftLastWriteTime,True);
1317+
{$ELSE}
1318+
diritem.CreationDate := FileDateToDateTime(rec.Time);
1319+
{$ENDIF}
13141320
Result := Result + [diritem];
13151321
end
13161322
else
@@ -1336,8 +1342,12 @@ procedure GetFiles(const Path : string; aAddToList : TDirItemAddProc; Recursive
13361342
diritem.Name := rec.Name;
13371343
diritem.IsDirectory := False;
13381344
diritem.Size := rec.Size;
1345+
{$IFNDEF LINUX}
13391346
diritem.CreationDate := ConvertFileTimeToDateTime(rec.FindData.ftCreationTime,True);
13401347
diritem.LastModified := ConvertFileTimeToDateTime(rec.FindData.ftLastWriteTime,True);
1348+
{$ELSE}
1349+
diritem.CreationDate := FileDateToDateTime(rec.Time);
1350+
{$ENDIF}
13411351
aAddToList(diritem);
13421352
end
13431353
else
@@ -1363,8 +1373,12 @@ function GetDirectories(const Path : string; Recursive : Boolean) : TArray<TDirI
13631373
diritem.Name := rec.Name;
13641374
diritem.IsDirectory := True;
13651375
diritem.Size := rec.Size;
1376+
{$IFNDEF LINUX}
13661377
diritem.CreationDate := ConvertFileTimeToDateTime(rec.FindData.ftCreationTime,True);
13671378
diritem.LastModified := ConvertFileTimeToDateTime(rec.FindData.ftLastWriteTime,True);
1379+
{$ELSE}
1380+
diritem.CreationDate := FileDateToDateTime(rec.Time);
1381+
{$ENDIF}
13681382
Result := Result + [diritem];
13691383
if Recursive then Result := Result + GetFiles(IncludeTrailingPathDelimiter(Path) + diritem.Name,Recursive);
13701384
end;
@@ -1402,17 +1416,25 @@ function GetFilesAndDirectories(const Path : string; Recursive : Boolean) : TArr
14021416
diritem.Name := rec.Name;
14031417
diritem.IsDirectory := False;
14041418
diritem.Size := rec.Size;
1419+
{$IFNDEF LINUX}
14051420
diritem.CreationDate := ConvertFileTimeToDateTime(rec.FindData.ftCreationTime,True);
14061421
diritem.LastModified := ConvertFileTimeToDateTime(rec.FindData.ftLastWriteTime,True);
1422+
{$ELSE}
1423+
diritem.CreationDate := FileDateToDateTime(rec.Time);
1424+
{$ENDIF}
14071425
Result := Result + [diritem];
14081426
end
14091427
else if (rec.Name <> '.') and (rec.Name <> '..') then
14101428
begin
14111429
diritem.Name := rec.Name;
14121430
diritem.IsDirectory := True;
14131431
diritem.Size := rec.Size;
1432+
{$IFNDEF LINUX}
14141433
diritem.CreationDate := ConvertFileTimeToDateTime(rec.FindData.ftCreationTime,True);
14151434
diritem.LastModified := ConvertFileTimeToDateTime(rec.FindData.ftLastWriteTime,True);
1435+
{$ELSE}
1436+
diritem.CreationDate := FileDateToDateTime(rec.Time);
1437+
{$ENDIF}
14161438
Result := Result + [diritem];
14171439
if Recursive then Result := Result + GetFilesAndDirectories(dirpath + diritem.Name,Recursive);
14181440
end;
@@ -1452,17 +1474,25 @@ procedure GetFilesAndDirectories(const Path : string; aAddToList : TDirItemAddPr
14521474
diritem.Name := rec.Name;
14531475
diritem.IsDirectory := False;
14541476
diritem.Size := rec.Size;
1477+
{$IFNDEF LINUX}
14551478
diritem.CreationDate := ConvertFileTimeToDateTime(rec.FindData.ftCreationTime,True);
14561479
diritem.LastModified := ConvertFileTimeToDateTime(rec.FindData.ftLastWriteTime,True);
1480+
{$ELSE}
1481+
diritem.CreationDate := FileDateToDateTime(rec.Time);
1482+
{$ENDIF}
14571483
aAddToList(diritem);
14581484
end
14591485
else if (rec.Name <> '.') and (rec.Name <> '..') then
14601486
begin
14611487
diritem.Name := rec.Name;
14621488
diritem.IsDirectory := True;
14631489
diritem.Size := rec.Size;
1490+
{$IFNDEF LINUX}
14641491
diritem.CreationDate := ConvertFileTimeToDateTime(rec.FindData.ftCreationTime,True);
14651492
diritem.LastModified := ConvertFileTimeToDateTime(rec.FindData.ftLastWriteTime,True);
1493+
{$ELSE}
1494+
diritem.CreationDate := FileDateToDateTime(rec.Time);
1495+
{$ENDIF}
14661496
aAddToList(diritem);
14671497
if Recursive then GetFilesAndDirectories(dirpath + diritem.Name,aAddToList,Recursive);
14681498
end;

0 commit comments

Comments
 (0)