2010-06-22 7 views

risposta

11

Environment.SpecialFolder.ApplicationData e Environment.SpecialFolder.CommonApplicationData

+1

+1 per cartella speciale; @Hema: vedere, http://msdn.microsoft.com/en-us/library/system.environment.specialfolder.aspx –

9

Questo vi darà il percorso della cartella "All Users" i dati delle applicazioni.

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

Questo percorso fornisce solo l'accesso in lettura se è necessario l'accesso in lettura/scrittura, controllare questo collegamento: http: // www.codeproject.com/Tips/61987/Allow-write-modify-access-to-CommonApplicationData –

0

La cartella AppData per ciascun utente è memorizzata nel registro.

utilizzando questo percorso:

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

Data una stringa SID variabile che contiene il SID degli utenti, è possibile ottenere il loro percorso AppData in questo modo:

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

Adattato da @ risposta di Derrick. Il codice seguente troverà il percorso AppData locale per ciascun utente sul computer e inserirà i percorsi in un elenco di stringhe.

 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); 
      } 
     } 
Problemi correlati