Browse Source

* Checks for directory and special directories

Michael Van Canneyt 2 năm trước cách đây
mục cha
commit
32884082e3
2 tập tin đã thay đổi với 29 bổ sung0 xóa
  1. 20 0
      rtl/objpas/sysutils/filutil.inc
  2. 9 0
      rtl/objpas/sysutils/filutilh.inc

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

@@ -699,6 +699,16 @@ begin
     Result := FileDateToUniversal(Time);
 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;
@@ -717,6 +727,16 @@ begin
     Result := FileDateToUniversal(Time);
 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

@@ -49,6 +49,9 @@ Type
 {$endif}
 
   // The actual unicode search record
+
+  { TUnicodeSearchRec }
+
   TUnicodeSearchRec = Record
     Time : Int64 deprecated 'use TimeStamp instead';
     Size : Int64;
@@ -66,10 +69,14 @@ Type
     function GetTimeStamp: TDateTime;
     function GetTimeStampUTC: TDateTime;
   public
+    Function IsDirectory : Boolean; inline;
+    function IsCurrentOrParentDir: Boolean; inline;
     property TimeStamp: TDateTime read GetTimeStamp;
     property TimeStampUTC: TDateTime read GetTimeStampUTC;
   end;
 
+  { TRawbyteSearchRec }
+
   TRawbyteSearchRec = Record
     Time : Int64 deprecated 'use TimeStamp instead';
     Size : Int64;
@@ -87,6 +94,8 @@ Type
     function GetTimeStamp: TDateTime;
     function GetTimeStampUTC: TDateTime;
   public
+    Function IsDirectory : Boolean; inline;
+    function IsCurrentOrParentDir: Boolean; inline;
     property TimeStamp: TDateTime read GetTimeStamp;
     property TimeStampUTC: TDateTime read GetTimeStampUTC;
   end;