2010-03-23 4 views
22

A savoir que j'ai:Quels répertoires signifient les différents SpecialFolders d'application pointent dans Windows XP et Windows Vista

  • Environment.SpecialFolder.ApplicationData
  • Environment.SpecialFolder.CommonApplicationData
  • Environment.SpecialFolder.LocalApplicationData

Je suis pas clairement étaient ces points à Windows XP et/ou Windows Vista. Ce que j'ai trouvé jusqu'ici est que ApplicationData pointe vers le dossier ApplicationData pour l'utilisateur actuel dans XP et le dossier de données d'application itinérant dans Vista.

Je voudrais également savoir s'il existe des directives générales sur le moment de l'utilisation.

Répondre

25

Il n'y a pas de réponse unique à cela. En fait, c'est exactement pourquoi ces "Dossiers spéciaux" sont définis. Vous les utilisez à la place d'un chemin codé en dur.

Environment.SpecialFolder.ApplicationData est le plus commun. Ce dossier contient des données spécifiques à l'application par utilisateur et non temporaires, autres que les documents utilisateur. Un exemple courant serait un fichier de paramètres ou de configuration.

Environment.SpecialFolder.CommonApplicationData est similaire, mais partagé entre les utilisateurs. Vous pouvez l'utiliser pour stocker des modèles de documents, par exemple.

Environment.SpecialFolder.LocalApplicationData est une alternative non-itinérante pour ApplicationData. En tant que tel, vous ne stockez jamais de données importantes là-bas. Cependant, comme il ne s'agit pas d'itinérance, il s'agit d'un bon emplacement pour les fichiers temporaires, les caches, etc. C'est généralement sur un disque local.

+0

CommonApplicationData peut également être utilisé par des sites Web et des services qui ne s'exécutent pas sous un compte d'utilisateur normal avec un dossier C: \ Users \. –

+2

Notez que CommonApplicationData dispose d'un accès restreint, ce qui le rend essentiellement accessible en lecture seule pour tous les droits d'écriture par utilisateur. Par exemple, voir http://stackoverflow.com/questions/22107812/privileges-owner-issue-when-writing-in-c-programdata – DAG

10

C'est facile à vérifier. Use Environment.GetFolderPath(...); et d'utiliser MessageBox ou Console.Write et il vous montrera où il pointe aussi. Vous n'avez qu'à créer une application simple qui affichera des chemins pour vous, et l'exécuter sous Windows XP et Windows Vista.

using System; 

namespace EnvironmentCheck 
{ 
    class Program 
    { 
     static void Main(string[] args) 
    { 
     Console.Write(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\n"); 
     Console.Write(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)+ "\n"); 
     Console.Write(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)+ "\n"); 
    } 
} 
} 

Mes résultats sur Win 7 x64

C: \ Users \ NomUtilisateur \ AppData \ Roaming
C: \ ProgramData
C: \ Users \ NomUtilisateur \ AppData \ Local

+1

Merci pour votre réponse, bien sûr, j'étais au courant de cette application simple, juste que je ne Je n'ai pas accès à toutes les différentes versions de Windows, mais j'ai besoin de trouver les paramètres d'autres applications installées sur la machine des utilisateurs. Merci de me donner la réponse pour Win 7, maintenant je suis couvert (en supposant que ce sera la même chose pour Vista) puisque je suis toujours en cours d'exécution XP. –

+0

J'ai remarqué que le fichier users.config est placé dans C: \ Users \ myUsername \ AppData \ Roaming avec le nom de compagnie et d'exe ajouté au chemin. Existe-t-il un moyen d'ajouter le nom de l'entreprise et de l'exe à ce chemin ou devez-vous le faire manuellement? –

+0

Pouvez-vous expliquer un peu mieux ce que vous cherchez? Peut-être créer une nouvelle question et élaborer là? – MadBoy

1

Pour tous ceux qui veulent savoir à quoi servent ces dossiers spéciaux sur Windows XP mais qui n'ont pas d'XP pour l'exécuter, voici ce que j'obtiens en exécutant le code de @ MadBoy:

ApplicationData: C: \ Documents and Settings \ YourAccountHere \ Application Data

CommonApplicationData: C: \ Documents and Settings \ All Users \ Application Data

LocalApplicationData: C: \ Documents and Settings \ YourAccountHere \ Local Settings \ Données d'application

Questions connexes