Diferença entre 'SpecialFolder.LocalApplicationData' e 'SpecialFolder.ApplicationData'?
-
14-12-2019 - |
Pergunta
No meu sistema, %AppData%
leva a ApplicationData
o que é C:\Users\<USER>\AppData\Roaming
Mas há também C:\Users\<USER>\AppData\Local
E, para alguns, mais confusão D:\Users\<USER>\AppData\LocalLow
string local = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
string roaming = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
A minha pergunta é, para que esses locais devem minha aplicativo a salvar seus dados?
Existem orientações para que esses locais para usar?E eu estou deixando de me abrir para os problemas, se eu escolher o local errado?
Solução
O Roaming
a pasta é copiado entre as máquinas quando os perfis móveis são ativados (em um ambiente de domínio).Use-a para dados de aplicativo que você deseja compartilhar entre máquinas. Mas não armazenar grandes arquivos de lá, os departamentos de TI não gosto quando você faz isso, e isso aumenta o tempo necessário para o usuário fazer login e logout como os arquivos são copiados em torno.
O Local
a pasta não é copiado entre as máquinas.Use-a para dados de aplicativo que são específicas para uma máquina.
O LocalLow
pasta é usada para baixo privilégio de tarefas (como o Internet Explorer).Você não precisa se preocupar com isso.
Para arquivos que o usuário especificamente salvos, você deve colocá-los (por padrão) no Documents
a pasta.
Outras dicas
De acordo com a MSDN a diferença é que LocalApplicationData
permanece na máquina local e não se movimenta... ApplicationData
a mobilidade, por exemplo, se o utilizador inicia sessão no domínio a partir de um computador diferente, ele será sincronizado...
O LocalLow
refere-se a situações específicas likea BHO executando em "Modo Protegido" do IE...
Para aplicação, utilize sempre ApplicationData
.Utilização LocalApplicationData
para as coisas que NÃO devem transitar com o usuário...
A partir do MSDN Meio ambiente.SpecialFolder Enumeração:
ApplicationData - O diretório que serve como um repositório comum para dados específicos de aplicativo para o atual usuário móvel.Um usuário móvel funciona em mais de um computador em uma rede.Um perfil de utilizador guardado no servidor é mantido em um servidor na rede, e é carregado em um sistema, quando o usuário fizer logon.
LocalApplicationData O diretório que serve como um repositório comum para os dados específicos do aplicativo que é utilizado pelo atual, não roaming do usuário.
Em suma, a utilização ApplicationData
para perfis guardados no servidor, e LocalApplicationData
para não perfis guardados no servidor.