c# - leer - ¿Diferencia entre ''SpecialFolder.LocalApplicationData'' y ''SpecialFolder.ApplicationData''?
properties.settings.default c# example (3)
En mi sistema, %AppData%
lleva a ApplicationData
que es C:/Users/<USER>/AppData/Roaming
Pero también hay C:/Users/<USER>/AppData/Local
Y para mayor confusión D:/Users/<USER>/AppData/LocalLow
string local = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
string roaming = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
Mi pregunta es, ¿a cuál de estas ubicaciones debe guardar mi aplicación sus datos?
¿Existen pautas para cuál de estos lugares usar? ¿Y me estoy dejando abierto a problemas si elijo la ubicación incorrecta?
De MSDN - MSDN :
ApplicationData: el directorio que sirve como repositorio común para datos específicos de la aplicación para el usuario itinerante actual. Un usuario itinerante trabaja en más de una computadora en una red. El perfil de un usuario itinerante se mantiene en un servidor de la red y se carga en un sistema cuando el usuario inicia sesión.
LocalApplicationData El directorio que sirve como repositorio común para datos específicos de la aplicación que utiliza el usuario actual no itinerante.
En resumen, use ApplicationData
para perfiles LocalApplicationData
y LocalApplicationData
para perfiles no itinerantes.
La carpeta de Roaming
se copia entre las máquinas cuando los perfiles móviles están habilitados (en un entorno de dominio). Úselo para datos de aplicación que quiera compartir entre máquinas. Pero no almacene archivos de gran tamaño allí: a los departamentos de TI no les gusta cuando lo hace, y aumenta el tiempo necesario para que el usuario inicie sesión y cierre la sesión a medida que se copian los archivos.
La carpeta Local
no se copia entre máquinas. Úselo para datos de aplicaciones que son específicos de una máquina.
La carpeta LocalLow
se usa para tareas con poco privilegio (como Internet Explorer). No deberías tener que preocuparte por eso.
Para los archivos que el usuario guardó específicamente, debe colocarlos (de forma predeterminada) en la carpeta Documents
.
Según MSDN la diferencia radica en que LocalApplicationData
permanece en la máquina local y no se desplaza ... ApplicationData
se desplaza, por ejemplo, si el usuario inicia sesión en el dominio desde otra computadora, se sincronizará ...
El LocalLow
refiere a situaciones específicas como un BHO corriendo en "Modo protegido" de IE ...
Para una aplicación estándar, siempre use ApplicationData
. Use LocalApplicationData
para cosas que NO deberían deambular con el usuario ...