Développez variable d'environnement pour Mes Documents
Je sais que je peux lire les variables d'environnement comme ceci:
Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
Cependant, il serait vraiment utile pour moi si je pouvais faire quelque chose comme ceci:
Environment.ExpandEnvironmentVariables(@"%MyDocuments%\Foo");
Est-il un environnement variable qui est égale à SpecialFolder.MyDocuments?
J'ai aussi essayé de faire quelque chose comme cela, mais cela ne conduit pas au résultat attendu:
Environment.ExpandEnvironmentVariables(@"%USERPROFILE%\My Documents\Foo");
De cette façon, je me suis retrouvé avec quelque chose comme @"C:\Users\<MyUser>\My Documents\Foo"
mais j'ai ce dont j'ai besoin est @"\\someservername\users$\<MyUser>\My Documents\Foo"
.
EDIT: Mon But n'est PAS de coder en dur soit variable d'environnement, ni de la part d'après.
Toutes les autres suggestions?
- Qu'essayez-vous de réaliser? Que serait le résultat final de ce qui précède, si cela a fonctionné comment vous vous attendiez?
- OK ce que je suis en train de faire: j'ai envie de mettre tout le chemin dans le fichier de configuration et d'étendre à ce qu'il pointe. Donc il peut facilement changé de @"%appdata%\foo" pour @"%appdatalocal%\bar" ou similaire. Ne pas coder en dur soit variable d'environnement, ni de la part d'après.
Vous devez vous connecter pour publier un commentaire.
Non, il n'est pas une variable d'environnement pour le
MyDocuments
dossier spécial (la même chose est vraie pour la plupart des membres de laSpecialFolder
énumération).Découvrez cet extrait, il pourrait être exactement ce que vous êtes recherche pour.
Il permet de faire quelque chose comme ça:
Remarque: SpecialFolder.ExpandVariables est une méthode statique d'une classe d'assistance introduit dans l'extrait ci-dessus.
Réponse courte: Pas.
Réponse longue:
Pas encore de. Vous pouvez taper
"set"
dans une Invite de Commande pour voir tous vous variables d'environnement. Je ne pouvais pas trouver n'importe quel dossier mes documents sur mon profil (essayé sur WinXP et Win7).Aussi, l'expansion de
"%USERPROFILE%\My Documents"
serait erronée, car le dossier documents de l'utilisateur pourrait être n'importe où ailleurs (par exemple, sur mon PC à la maison, j'ai toujours changer mine àD:\Documents
).Si vous vraiment besoin d'utiliser des variables d'environnement, une solution pourrait être de définir la variable de vous-même:
Une autre solution pourrait être d'utiliser un "faux" variable d'environnement dans le chemin d'accès et développez vous-même, quelque chose comme:
Je ne suis pas sûr si il ya une bonne façon de le faire, mais au lieu d'essayer de faire de l'expansion environnement pour obtenir le chemin d'accès pourquoi ne pas utiliser le
Path.Combine
plutôt l'API?Exactement ce que vous essayez de faire? Est-il une raison pourquoi vous ne pouvez pas utiliser
Path.Combiner
?Vous pouvez étendre les variables d'environnement en utilisant ensuite
Environment.GetEnvironmentVariable
méthode. Compte tenu de votre commentaire, je vous suggère de casser votre chemin jusqu'à séparer les 2 config paramètres à prendre de l'expansion, il est plus facile:Non, il n'existe pas. La meilleure façon de vérifier est d'exécuter le "jeu" en ligne de commande et voir vous-même.