65 votes

Existe-t-il une variable d'environnement défini par le système pour le répertoire de documents?

Je connais la variable d'environnement définie par le système %USERPROFILE% sous Windows XP (et Vista et Windows 7). Existe-t-il une variable d'environnement définie par le système qui pointe vers l'emplacement du répertoire "Mes documents"? Sur XP par défaut, c'est %USERPROFILE%\My Documents et sur Win 7, c'est %USERPROFILE%\Documents . Je voulais juste éviter de devoir tester la version du système d'exploitation dans un script Powershell si je pouvais l'éviter.

38voto

flindeberg Points 1878

Pour .NET le suivant est vrai (c'est à dire pas applicable dans toutes les applications windows):

Comme une réponse, il n'y a pas de Variable d'Environnement pointant vers Mes Documents, mais il n'y a Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) (C#) pour .NET.

Je suis l'ajout de cette réponse étant donné que cette question revient quand googler pour C#, les variables d'environnement et mes documents et Justin réponse ne contient pas la ligne de code :)

À l'aide de l'mentionnés ci-dessus de la ligne de code est la voie privilégiée pour accéder à mes documents .NET :)

Copiez-collez cette ligne de C# usage:

var directoryNameOfMyDocuments = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

A noter que C# a besoin d'un capital D dans Mesdocuments.

31voto

msteiger Points 1196

Sur mon défaut-installation de XP, il n'y a pas de variable d'environnement pour que. Vous pouvez dresser la liste de toutes les variables avec la commande "set" (pas de paramètres ) dans la ligne de commande. Donc, probablement que vous avez à faire un test.

Si vous ne voulez pas tester pour la version de l'OS, vous pouvez simplement vérifier si les "Documents" existe et si non, alors essayer de "Mes Documents" ou vice versa. Ce n'est pas parfait cependant, parce que s/o pourrait avoir un dossier "Documents" sur sa machine XP.

Btw: mon système est allemand, donc le dossier est appelé "Dokumente". Vous pourriez avoir besoin de prendre en compte.

EDIT: Le chemin d'accès à ce dossier est stocké dans "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" en vertu de "Personnel". Vous avez besoin d'accès au registre bien.

Source: Microsoft

24voto

Hipponax43 Points 163

Étendre la réponse de flindeberg à PowerShell devient:

PS> [Environment] :: GetFolderPath ("mes documents")

15voto

Nick G Points 1689

(Juste pour réitérer les réponses précédentes) Il n'y a pas de variable d'environnement fournie prête à l'emploi (WinXP) pour le répertoire "Mes documents".

Cependant, vous pouvez définir une variable à l'aide de la commande suivante:

 FOR /F "tokens=3* delims=   " %a in ('reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Personal"') do (set mydocuments=%a)
 

Ce qui vous donnerait alors:

 C:\>echo mydocuments=%mydocuments%
mydocuments=C:\pathto\My Documents
 

8voto

Justin Points 42106

Si vous tapez:

set

Dans une invite de commande, vous obtiendrez une liste de toutes les variables d'environnement définies sur votre système.

En regardant celles définies sur la mienne (Windows 7 Home Premium) aucun d'entre eux semblent pointer vers Mes Documents.

FYI:

Le SHGetSpecialFolderPath) la fonction peut être utilisée pour obtenir le chemin d'accès au répertoire Mes Documents. Sinon l' Environnement.GetFolderPath méthode peut être utilisée sous .Net

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X