Hallo
DP,
ich habe das Problem, dass auf
versteckte Directories mit nachfolgendem Code nicht zugegriffen wird.
Ich habe den Code um AddDirSeparator ergänzt, weil der originale Torrycode nicht geht, bzw. die Funktion AddDirSeparator nirgends gefunden habe.
Hier der Original-Code:
Delphi-Quellcode:
// ...list all Subdirectories of a Directory? Autor: Martin Schulz
procedure GetSubDirs(const sRootDir: string; slt: TStrings);
var
srSearch: TSearchRec;
sSearchPath: string;
sltSub: TStrings;
i: Integer;
begin
sltSub := TStringList.Create;
slt.BeginUpdate;
try
sSearchPath := AddDirSeparator(sRootDir);
if FindFirst(sSearchPath + '*', faDirectory, srSearch) = 0 then
repeat
if ((srSearch.Attr and faDirectory) = faDirectory) and
(srSearch.Name <> '.') and
(srSearch.Name <> '..') then
begin
slt.Add(sSearchPath + srSearch.Name);
sltSub.Add(sSearchPath + srSearch.Name);
end;
until (FindNext(srSearch) <> 0);
FindClose(srSearch);
for i := 0 to sltSub.Count - 1 do
GetSubDirs(sltSub.Strings[i], slt);
finally
slt.EndUpdate;
FreeAndNil(sltSub);
end;
//Meine Ergänzung, damit es funktioniert.
Function AddDirSeparator(const Root:String):String;
Var h:string;
begin
Result:=Root;
h:=Root;
// h, da Root als const nicht verändert werden kann
if h[Length(h)]<>'\' then h:=h+'\';
Result:=h;
end;
end;
Ich weiss nicht, ob ein faHidden genügen würde. Ich habe aber keine Ahnung, wie ich das einfügen sollte. Wisst Ihr weiter?
Danke für die Mühe im voraus und beste Grüße
Go2EITS