Pergunta

Meu programa requer alguns detalhes de configuração para ser mantido em um arquivo. Este programa também instala extensões para o IE e Firefox e eu quero ler esses arquivos ini destas extensões também. Se eu continuasse ini em "... AppData / Roaming ..." a extensão IE em modo protegido não será capaz de leitura / gravação. Tanto quanto eu sei única AppData / LocalLow só pode ser capaz de ler em modo protegido. Se eu estou movendo todos os detalhes meus configuração para este "... AppData / LocalLoe ..." ele vai trabalhar todos os tempos? É este o caminho std? tudo o que eu escrevi é no contexto Vista, será que funciona com XP? Win7?

Foi útil?

Solução

Veja a minha resposta a esta pergunta: Como decidir onde armazenar o estado por usuário? Registro? Dados do aplicativo? Isolado de armazenamento?

para citar lá:

Os arquivos do usuário de "Roaming" pasta no Vista ou "Dados de aplicativos" no XP se movimentar com o usuário -. Por isso todas as configurações e os dados devem ser armazenados lá

Arquivos em "Local" e "LocalLow" em vista e "Configurações Locais" no XP não fizer isso, então é um bom lugar para arquivos temporários, coisas que estão ligados ao computador específico ou dados que podem ser recalculadas.

No Vista, como parte do novo recursos de segurança que todos nós conhecemos e amamos, você pode ter os programas em execução no "modo de baixa integridade" (por exemplo IE em modo protegido), esses programas estão em execução com privilégios reduzidos e podem não acessar arquivos no perfil do usuário - com exceção de arquivos na pasta "LocalLow"

.

Assim, em conclusão, os arquivos armazenados em "LocalLow" são inerentemente inseguros e arquivos em "Local" / "Configurações locais" são susceptíveis de não estar disponível em algumas grandes empresas - a menos que você tenha uma boa razão e saber exatamente o que você é fazendo ir com "Roaming" / "Application Data".

UPDATE:

  1. Quando perfil móvel é usado (big cooperar ambientes) o conteúdo do local e LocalLow pode (e vai) desaparecem sem aviso prévio.
  2. Essas são todas as configurações por usuário, se suas corridas Server em uma conta diferente e foi decorado que o usuário (por exemplo, sistema ou rede) que irão receber cópias diffrent dessas pastas.

Outras dicas

Para obter caminho da pasta para dados do programa que você deve usar WinAPI:

wchar_t path_buf[MAX_PATH];
SHGetFolderPath( NULL, CSIDL_COMMON_APPDATA, NULL, SHGFP_TYPE_CURRENT, &path_buf[0] );

Em Windows Vista função SHGetFolderPath foi substituído por SHGetKnownFoldedPath . Essa função mais velho agora é simplesmente um invólucro para SHGetKnownFolderPath.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top