de Windows a un certain nombre de répertoires qui ont des noms de temps anciens et ne sont pas accessibles. Je veux dire des répertoires comme "C: \ Documents and Settings" et "C: \ Dokumente und Einstellungen" où le vrai dossier est "C: \ Users". Un autre est "C: \ Program" sur les systèmes localisés. Ces répertoires apparaissent lors de l'itération de tous les répertoires avec Directory.GetDirectories
mais ne sont pas accessibles. Lorsque vous essayez d'y accéder, un UnauthorizedAccessException
est lancé. Je pourrais l'attraper, mais cela occasionne du temps supplémentaire qui ralentit mon balayage. Je préfère éviter de regarder dans ces faux répertoires en premier lieu. (Je me demande pourquoi ils sont encore là et si je pourrais juste les supprimer, mais c'est une autre question.)Circuler répertoires de liens de compatibilité de Windows 7
Alors, quelle est une bonne façon de détecter de tels pièges avant de tomber dans eux? Je suppose que c'est une sorte de lien, mais il existe différents types de liens (et des trucs du NTFS qu'aucun utilisateur mondain ne peut créer lui-même) et je ne saurais toujours pas comment le détecter à partir du code.
Je sais que je dois encore gérer cette exception, mais si je sais déjà à l'avance que l'opération ne fonctionne pas, je voudrais pas le faire pour garder les choses rapidement. Les analyses de disque sont déjà assez lentes.
Mon code n'est pas censé fonctionner avec des privilèges d'administrateur, ni ESPÉRANT trouver quelque chose d'utile dans ces répertoires liés.
Attraper l'exception peut causer plus de temps, mais que cela a _serious_ impact sur votre temps d'exécution? Il est tout à fait possible que le code dont vous avez besoin pour éviter cela coûte plus cher que d'accepter simplement que vous devrez gérer l'exception. – Ceisc
Il ya un ACE tout le monde dans la liste DACL qui empêche de les répertorier. Mais ils peuvent toujours être traversés, par ex. 'dir"% SystemDrive% \ Documents and Settings \% USERNAME% "'. – eryksun
Restez à l'écart de tout répertoire ayant les attributs Hidden et System. –