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.