ソースを参照

* Checks for directory and special directories

(cherry picked from commit 32884082e3299ca4a73e64582039affc9bcfc727)
Michael Van Canneyt 2 年 前
コミット
1b1f9fe2ce
2 ファイル変更29 行追加0 行削除
  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}
 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 }
 
 function TRawbyteSearchRec.GetTimeStamp: TDateTime;
@@ -641,6 +651,16 @@ begin
 {$endif}
 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 }
 
 function TUnicodeSymLinkRec.GetTimeStamp: TDateTime;

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

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