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