Einzelnen Beitrag anzeigen

MicMic

Registriert seit: 26. Mai 2018
296 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#10

AW: Ist es ein lnk Ordner ?

  Alt 7. Jun 2018, 10:58
C:\Programme existiert tatsächlich, ist aber aber symbolischer Link.

Du kannst beim Auflisten der Verzeichnisse die aussortieren indem du schaust dass das Flag faSymLink nicht vorhanden ist:

Delphi-Quellcode:
program Project28;

{$APPTYPE CONSOLE}
{$R *.res}

uses
   System.SysUtils,
   System.Types,
   System.IoUtils;

var
   directories: TStringDynArray;
   directory: String;
   isNotSymLink: TDirectory.TFilterPredicate;
begin
   isNotSymLink :=
      function(const Path: string; const SearchRec: TSearchRec): Boolean
      begin
         Result := (faSymLink and SearchRec.Attr) = 0;
      end;

   directories := TDirectory.GetDirectories(
      'C:\',
      TSearchOption.soTopDirectoryOnly,
      isNotSymLink
   );

   for directory in directories do
      WriteLn(directory);

   ReadLn;
end.
Mit TDirectory kann man viel machen, wie ich sehe.
Danke für den Beispielcode. Ich muss halt noch mein Record Array füllen. Also was so von FindFirst/Next kommt. (Size/Attr/Time etc.) speichere ich in ein Array of Record. Im Programm arbeite ich dann mit diesem Record. Am liebsten hätte ich es so, dass ich mein Record of Array um eine symLink Variable erweitere. Steht dort das Zielverzeichnis drin, weis ich 1. das Zielverzeichnis und 2. das es sich um ein symlink-Ordner handelt. Anzeigen möchte ich diese Ordner nämlich schon... also es geht um so ein Dateimanager ähnlich wie der Total-Commander. Ich probiere mal ein paar Dinge aus.

Michael
  Mit Zitat antworten Zitat