Bläddra i källkod

* Checks for directory and special directories

(cherry picked from commit 32884082e3299ca4a73e64582039affc9bcfc727)
Michael Van Canneyt 2 år sedan
förälder
incheckning
1b1f9fe2ce
2 ändrade filer med 29 tillägg och 0 borttagningar
  1. 20 0
      rtl/objpas/sysutils/filutil.inc
  2. 9 0
      rtl/objpas/sysutils/filutilh.inc

+ 20 - 0
rtl/objpas/sysutils/filutil.inc

@@ -630,6 +630,16 @@ begin
 {$endif}
 {$endif}
 end;
 end;
 
 
+function TUnicodeSearchRec.IsDirectory: Boolean;
+begin
+  Result:=(Attr and faDirectory)<>0;
+end;
+
+function TUnicodeSearchRec.IsCurrentOrParentDir: Boolean;
+begin
+  Result:=IsDirectory and ((Name='.') or (Name='..'));
+end;
+
 { TRawbyteSearchRec }
 { TRawbyteSearchRec }
 
 
 function TRawbyteSearchRec.GetTimeStamp: TDateTime;
 function TRawbyteSearchRec.GetTimeStamp: TDateTime;
@@ -641,6 +651,16 @@ begin
 {$endif}
 {$endif}
 end;
 end;
 
 
+function TRawbyteSearchRec.IsDirectory: Boolean;
+begin
+  Result:=(Attr and faDirectory)<>0;
+end;
+
+function TRawbyteSearchRec.IsCurrentOrParentDir: Boolean;
+begin
+  Result:=IsDirectory and ((Name='.') or (Name='..'));
+end;
+
 { TUnicodeSymLinkRec }
 { TUnicodeSymLinkRec }
 
 
 function TUnicodeSymLinkRec.GetTimeStamp: TDateTime;
 function TUnicodeSymLinkRec.GetTimeStamp: TDateTime;

+ 9 - 0
rtl/objpas/sysutils/filutilh.inc

@@ -45,6 +45,9 @@ Type
 {$endif}
 {$endif}
 
 
   // The actual unicode search record
   // The actual unicode search record
+
+  { TUnicodeSearchRec }
+
   TUnicodeSearchRec = Record
   TUnicodeSearchRec = Record
     Time : Longint;
     Time : Longint;
     Size : Int64;
     Size : Int64;
@@ -61,9 +64,13 @@ Type
   private
   private
     function GetTimeStamp: TDateTime;
     function GetTimeStamp: TDateTime;
   public
   public
+    Function IsDirectory : Boolean; inline;
+    function IsCurrentOrParentDir: Boolean; inline;
     property TimeStamp: TDateTime read GetTimeStamp;
     property TimeStamp: TDateTime read GetTimeStamp;
   end;
   end;
 
 
+  { TRawbyteSearchRec }
+
   TRawbyteSearchRec = Record
   TRawbyteSearchRec = Record
     Time : Longint;
     Time : Longint;
     Size : Int64;
     Size : Int64;
@@ -80,6 +87,8 @@ Type
   private
   private
     function GetTimeStamp: TDateTime;
     function GetTimeStamp: TDateTime;
   public
   public
+    Function IsDirectory : Boolean; inline;
+    function IsCurrentOrParentDir: Boolean; inline;
     property TimeStamp: TDateTime read GetTimeStamp;
     property TimeStamp: TDateTime read GetTimeStamp;
   end;
   end;