2010-03-23 21 views
22

Es decir que tengo:Qué directorios hacen las diferentes SpecialFolders aplicación de punto en Windows XP y Windows Vista

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

no tengo muy claro que eran estos puntos a en Windows XP y/o Windows Vista.

Lo que encontré hasta ahora es que ApplicationData apunta a la Carpeta ApplicationData para el usuario actual en XP y la carpeta de datos de la aplicación itinerante en Vista.

También me gustaría saber si hay pautas generales sobre cuándo usarlas.

Respuesta

25

No hay una respuesta única para eso. De hecho, eso es precisamente por qué se definen estos "SpecialFolder" s. Usas esos en lugar de un camino codificado.

Environment.SpecialFolder.ApplicationData es el más común. Esta carpeta contiene datos específicos de la aplicación, no temporales, por usuario, que no sean documentos del usuario. Un ejemplo común sería una configuración o archivo de configuración.

Environment.SpecialFolder.CommonApplicationData es similar, pero se comparte entre los usuarios. Podría usar esto para almacenar plantillas de documentos, por ejemplo.

Environment.SpecialFolder.LocalApplicationData es una alternativa no itinerante para ApplicationData. Como tal, nunca almacenaría datos importantes allí. Sin embargo, como no es itinerante, es una buena ubicación para archivos temporales, cachés, etcétera. Por lo general, está en un disco local.

+0

CommonApplicationData también puede ser utilizado por sitios web y servicios que no se ejecutan bajo una cuenta de usuario normal con una carpeta C: \ Users \. –

+2

Tenga en cuenta que CommonApplicationData tiene acceso restringido, lo que lo hace esencialmente de solo lectura para todos los privilegios de escritura, excepto para los usuarios. Por ejemplo, ver http://stackoverflow.com/questions/22107812/privileges-owner-issue-when-writing-in-c-programdata – DAG

10

Es fácil de verificar. Use Environment.GetFolderPath(...); y use MessageBox o Console.Write y le mostrará dónde apunta. Solo tiene que hacer una aplicación simple que muestre las rutas para usted y ejecutarla en Windows XP y 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"); 
    } 
} 
} 

Mis resultados en Win 7 x64

C: \ Users \ MyUserName \ AppData \ Roaming
C: \ Datos de programa
C: \ Users \ MyUserName \ AppData \ Local

+1

Gracias por su respuesta, por supuesto que estaba al tanto de esa simple aplicación, solo que no No tengo acceso a todas las diferentes versiones de Windows, pero necesito encontrar configuraciones de otras aplicaciones instaladas en la máquina de los usuarios. Gracias por darme la respuesta para Win 7, ahora estoy cubierto (suponiendo que será el mismo para Vista) ya que todavía estoy ejecutando XP. –

+0

Me di cuenta de que el archivo users.config se coloca en C: \ Users \ myUsername \ AppData \ Roaming con la compañía y el nombre del exe agregado a la ruta. ¿Hay alguna forma de obtener el nombre de la empresa y el exe agregado a esta ruta o tienes que hacerlo manualmente? –

+0

¿Puedes explicar esto un poco mejor de lo que estás buscando? Tal vez crear una nueva pregunta y elaborar allí? – MadBoy

1

Para cualquiera que quiera saber qué evalúan estas carpetas especiales en Windows XP pero no tiene XP para ejecutarlo, esto es lo que obtengo al ejecutar el código de @ MadBoy:

ApplicationData: C: \ Documents and Settings \ YourAccountHere \ Datos de programa

CommonApplicationData: C: \ Documents and Settings \ All Users \ Datos de programa

LocalApplicationData: C: \ Documents and Settings \ YourAccountHere \ Local Settings \ Application Data

Cuestiones relacionadas