est-il possible de tester la redirection de dossier dans .NET? Je ne veux pas dire reparse points / jonctions, je veux dire quand un dossier (généralement mes documents) est redirigé vers un serveur. p>
Dans de tels cas, si vous parcourez le système de dossier d'un PC, vous rencontrez une erreur IO si vous atteignez la version locale du dossier. Il serait donc utile de pouvoir tester la redirection de mon dossier de documents, de manière à pouvoir agir (saupoudrer le dossier, sauter sur le serveur, etc. P>
Je sais que je peux obtenir l'emplacement de mes documents (mais uniquement pour l'utilisateur actuel) en utilisant
Dois-je utiliser quelque chose comme ShgetknolDederDePath? P> Environnement.GetFolderDePath (Environnement.Specialfolder.mydocuments) Code> Mais cela ne m'aide pas à le tester à l'avance (potentiellement) d'utilisateurs multiples. P>
3 Réponses :
Vous pouvez interroger la clé de registre: p>
http://support.microsoft.com/kb/221837 P>
Vous pouvez également interroger la stratégie de groupe pour la redirection: P>
http://technet.microsoft.com/ EN-US / Bibliothèque / CC781907 (WS.10) .aspx P>
Une fois que vous avez cette valeur, vous pouvez facilement tester pour le lecteur réseau / mappé, voici comment je le fais. p>
Je ne suis pas sûr de l'objectif que vous essayez d'atteindre, vous pouvez obtenir le répertoire n'importe où dans votre arbre auquel vous n'auriez peut-être pas la permission d'entrer dans ce que vous auriez pour que vous ne puissiez pas attraper des exceptions. Mais une façon de déterminer si vous traitez avec un lecteur réseau peut être d'utiliser driveinfo code> en combinaison avec la racine de la racine du dossier MyDocuments.
Je vais toujours attraper les exceptions, mais si possible, je veux prédire les exceptions prévisibles
Il sera difficile d'obtenir une solution sans erreur de 100% à cela (autre que de saisir les exceptions sur l'accès - comme un autre répondeur a suggéré) - mais voici mon meilleur tir. P>
Créer un Je dois dire, cependant, vous pourriez simplement avoir à recourir à l'exception de l'IO à la fin; Parce que la structure de dossiers est entièrement personnelle - si j'avais une sauvegarde de mon utilisateur \ dossier sur le lecteur D: alors cette approche serait confuse! p> Dictionary
code>.
Lorsque vous marchez la hiérarchie de répertoire, recherchez le répertoire dans ce dictionnaire pour voir si vous avez une entrée (si vous utilisez un dictionnaire - utilisez le comparateur
stringcomparer.invariantcultureCase code> comparateur sur la construction pour éviter de devoir avoir à la muck le cas des chemins). P>