2010-06-22 17 views

Respuesta

11

Environment.SpecialFolder.ApplicationData y Environment.SpecialFolder.CommonApplicationData

+1

+1 para carpeta especial; @Hema: Vea, http://msdn.microsoft.com/en-us/library/system.environment.specialfolder.aspx –

9

Esto le dará la ruta de la carpeta "Todos los usuarios" datos de aplicación.

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

Esta ruta solo proporciona acceso de lectura si necesita acceso de lectura/escritura consulte este enlace: http: // www.codeproject.com/Tips/61987/Allow-write-modify-access-to-CommonApplicationData –

0

La carpeta AppData para cada usuario se almacena en el registro.

Usando esta ruta:

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

Dada una cadena SID variable que contiene el SID usuarios, puede obtener su camino AppData así:

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

@ Adaptado de la respuesta de la torre de perforación. El siguiente código encontrará la ruta a Local AppData para cada usuario en la computadora y colocará las rutas en una lista de cadenas.

 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); 
      } 
     } 
Cuestiones relacionadas