2010-06-22 5 views

Répondre

11

Environment.SpecialFolder.ApplicationData et Environment.SpecialFolder.CommonApplicationData

+1

+1 pour dossier spécial; @Hema: Voir, http://msdn.microsoft.com/en-us/library/system.environment.specialfolder.aspx –

9

Cela vous donnera le chemin vers le « Tous les utilisateurs » dossier de données d'application.

string path = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData); 
+4

Ce chemin fournit uniquement l'accès en lecture si vous avez besoin d'un accès en lecture/écriture, vérifiez ce lien: http: // www.codeproject.com/Tips/61987/Allow-write-modify-access-to-CommonApplicationData –

0

Le dossier AppData de chaque utilisateur est stocké dans le registre.

En utilisant ce chemin:

const string regKeyFolders = @"HKEY_USERS\<SID>\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"; 
const string regValueAppData = @"AppData"; 

une chaîne d'sid variable contenant les utilisateurs sid, vous pouvez obtenir leur chemin AppData comme ceci:

string path=Registry.GetValue(regKeyFolders.Replace("<SID>", sid), regValueAppData, null) as string; 
5

Adapté de @ réponse de Derrick. Le code suivant trouvera le chemin d'accès aux AppData locaux pour chaque utilisateur sur l'ordinateur et placera les chemins dans une liste de chaînes.

 const string regKeyFolders = @"HKEY_USERS\<SID>\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"; 
     const string regValueAppData = @"Local AppData"; 
     string[] keys = Registry.Users.GetSubKeyNames(); 
     List<String> paths = new List<String>(); 

     foreach (string sid in keys) 
     { 
      string appDataPath = Registry.GetValue(regKeyFolders.Replace("<SID>", sid), regValueAppData, null) as string; 
      if (appDataPath != null) 
      { 
       paths.Add(appDataPath); 
      } 
     } 
Questions connexes