route how comando windows appdata user-data

how - ¿Tiene Microsoft un documento de mejores prácticas en relación con el almacenamiento de datos de aplicaciones frente a datos de usuarios en diferentes plataformas Windows?



how to go to appdata (2)

Al crear una aplicación que se dirigirá a muchas versiones de Windows, ¿cuál es la mejor práctica para determinar dónde se deben almacenar los datos específicos de la aplicación? Específicamente:

  • Datos específicos de la aplicación (por ejemplo, datos de configuración de la aplicación)
  • Datos específicos del usuario / Configuración

Sé que en Windows Vista, por ejemplo, hay variables de entorno, como% APPDATA%, que podrían usarse, pero ¿qué pasa con Windows 7, Windows XP, Windows 98?

Mi pregunta principal es si Microsoft tiene un documento de mejores prácticas para esto, que describe las ubicaciones del sistema de archivos para los diferentes tipos de datos (aplicación contra usuario) y las implicaciones de seguridad que deben tenerse en cuenta al leer / escribir en estas ubicaciones. ?

También estoy interesado en cómo esto se aplica no solo a las aplicaciones .NET (donde se puede utilizar ApplicationSettingsBase) sino también a las aplicaciones no administradas de C / C ++.

Gracias a Pax y Remus por las dos grandes respuestas. He encontrado este artículo también (específico para XP):

Cómo escribir una aplicación de Windows XP que almacena datos de usuarios y aplicaciones en la ubicación correcta utilizando Visual C ++


Aquí hay una buena descripción de los diversos valores de CSIDL y las carpetas a las que hacen referencia (incluida una descripción que, con suerte, debería decirle lo que necesita saber).

También contiene enlaces a las funciones que debe usar para recuperar estas rutas de carpetas especiales.

Tenga en cuenta que, a partir de Vista, el método ha cambiado un poco. Ahora usa KNOWNFOLDERID lugar de CSIDL y las funciones también han cambiado. Ver here

Todavía puedes usar las funciones más antiguas (en este momento) ya que creo que ahora solo están envueltas alrededor de las nuevas. En algún momento en el futuro, eso puede cambiar.


Estos normalmente se describen en el programa de logotipo de software de Windows (enlace roto) . El enlace está en el documento de requisitos del logotipo de Windows 7, pero existen documentos similares para XP, Windows 2003, Vista y Windows 2008. En la sección de Requisitos técnicos encontrará algo de la información que está buscando:

Todos los datos de la aplicación que deben compartirse entre los usuarios de la computadora deben almacenarse en ProgramData

Todos los datos de la aplicación exclusivos para un usuario específico y que no deben compartirse con otros usuarios de la computadora deben almacenarse en Users/<username>/AppData

En las instalaciones "por máquina", los datos del usuario deben escribirse en la primera ejecución y no durante la instalación. Esto se debe a que no hay una ubicación de usuario correcta para almacenar datos en el momento de la instalación.

EDITAR:

Usuarios de Windows 10, busque los requisitos de certificación para las aplicaciones de escritorio de Windows (Sección 10)