Dans la plupart des cas, la réponse correcte est que vous ne devriez pas.
Votre algorithme doit attraper l'exception UnauthorizedAccessException, accepter qu'il ne sera pas autorisé à naviguer plus bas dans ce dossier et agir comme s'il était vide. Cela signifie que parfois vous obtiendrez une réponse indiquant qu'un répertoire que vous recherchez n'existe pas lorsqu'il existe techniquement. C'est bon. C'est comme ça que c'est censé être. Si vous n'avez pas la permission, cela n'existe pas pour vous.
Les dossiers protégés par les droits d'autres utilisateurs sont "privés". Un programme exécuté par "Joe" n'est pas censé regarder les dossiers qui appartiennent à "Mary". C'est tout le point des permissions.
Il existe très peu d'exceptions contrôlées à la règle. Notoirement, les applications de sauvegarde de disque et d'antivirus doivent être capables de naviguer sur le disque entier, indépendamment des autorisations de dossier. Ils le font en mettant en place un service qui fonctionne sous un compte hautement privilégié (peut-être "SYSTEM", peut-être quelque chose d'autre). Ce sera probablement un compte qui contient le SeBackupPrivilege.
Vous pouvez faire cela pour votre programme, si vous vraiment besoin d'analyser le disque entier, mais pour la plupart des scénarios d'application, vous ne devriez pas. Seule une application de maintenance à l'échelle de la machine, comme un programme antivirus ou de sauvegarde, devrait avoir ce type d'autorité.
Ce n'est pas que c'est "overkill"; c'est que c'est "faux". Cela ne joue pas selon les règles.
Vous voudrez probablement inclure plus d'informations sur le langage/cadre de programmation que vous utilisez. – Marplesoft
Quel système d'exploitation utilisez-vous? –
BTW, en définissant une question de programmation légitime comme ceci est 'wiki communautaire' est un excellent moyen de s'assurer que beaucoup de gens ne vous dérange pas de vous donner une réponse. Vous devriez être d'humeur à «travailler gratuitement» :-). Bonne chance –