Ik kan natuurlijk de source even wijzigen, maar daar heb ik op dit moment de tijd niet voor; in ieder geval vergeet ik 't zo niet mocht GolezTrol me niet voor zijn met implementeren...



Dankzij Junction heb ik een aantal zogenaamde "reparse points" opgezet op m'n harde schijf. Voor bepaalde punten is dat geen probleem, zoals het gebruik van junction voor de NLDelphi FreeVCS... ik zit nu echter met een situatie die een oneindige loop triggered:

In G:\Serv-U\admin\ heb ik een aantal reparse points gemaakt naar de root van al m'n schijven. Deze worden dus zichtbaar als normale mappen. Het idee is dat Serv-U (de FTP server) mij als admin op die manier toegang geeft tot alle schijven (werkt beter dan Serv-U's virtual folders). Het probleem daarbij wordt al snel zichtbaar; er is ook een link naar G:\. Zodra je een zoekactie begint in die folder komt je steeds uit op de "admin" directory en blijft 't verhaal zich herhalen in een schijnbaar steeds diepere directorystructuur... hier kwam ik vandaag achter bij het uitvoeren van een online scan...


Is dit mijn eigen schuld? Uiteraard. Zou NLDFileSearch hier ook rekening mee kunnen houden? Natuurlijk!

Het kan zo complex als je zelf wilt, maar ik denk dat je standaard simpelweg reparse points moet negeren alszijnde directories. Via de Options zou je dit dan kunnen wijzigen, met het risico dat ie blijft loopen. Uiteraard kan je er ook een event van maken... of die options default aan of uit moet is maar de vraag, alhoewel reparse points aanmaken standaard niet aanwezig is (of in ieder geval lastig te vinden ) in Windows... is in ieder geval een discussiepunt, waarbij ik voorstander ben van standaard uit (dus niet de map doorzoeken).


De oplossing is voor zover ik even snel kon zien om het FILE_ATTRIBUTE_REPARSE_POINT attribuut te testen. Deze zal niet in alle Windows versies geldig zijn, en wellicht ook niet alle Delphi versies, maar even kopieren en 't zal geen kwaad kunnen...