Ich durchsuche einen Ordner nach einer bestimmten Datei. Um auch die
Unterordner zu berücksichtigen, rufe ich die Routine recursiv auf.
Läuft alles prima.

Jetzt hatte ich einen Anwender, der einen Alias eines
übergeordneten Ordners in einem Ordner erzeugt hat. Prima Schleife.
Die führt nun selbstverständlich zu einem Fehler.

Also einfach auf Alias prüfen und die nicht verfolgen. Funktioniert
bei mir nur leider nicht.

Zum Testen habe ich folgende Struktur erzeugt:
Ordner 0:
        Ordner1:
                Ordner 2:
                        Ordner1    <- Alias

Ich bekomme aber nie für das Folderitem ein .Alias=true :-(

Hier die Routine, die ich nutze ("name" ist der Dateiname der gesuchten
Datei):

Function getFileNew(source as folderItem, name As string) As folderItem
 Dim i as Integer
 Dim f as FolderItem

 if source<>nil then
   f=source
   if f<>nil and f.Exists then
     f=f.child(name)
     if f<>nil then
       if Not f.exists then
         For i=1 to source.count //go through each item
           if source.Exists=true and i<=source.count and
source.item(i).directory then
             //it’s a folder
             f=getFileNew(source.item(i), name)
             if f<>nil then
               exit
             end
           end
         next
       end
     end
   end

   if f<>nil and f.exists=false then
     f=nil
   end
 end

 return f

Exception err
 Fehlerbehandlung(err.message,"getFileNew")


Wie kann ich verhindern, dass ich durch einen Alias in eine
Endlosschleife gerate?
Kann ich die StackOverflow-Exception irgendwie abfangen ("Exception err"
habe ich eingebaut, wird aber nicht angesprungen)?

Gruß, Stefan Mettenbrink.

Antwort per Email an