Delphi Programming User and Application Data Storage

Quando você precisar armazenar algum conteúdo relacionado ao seu Aplicação Delphi no disco rígido do usuário, você deve cuidar do suporte à separação de estado dos dados do usuário, configurações do usuário e configurações do computador.

Por exemplo, a pasta "Application Data" em janelas deve ser usado para armazenar documentos específicos do aplicativo, como Arquivos INI, estado do aplicativo, arquivos temporários ou semelhante.

Você nunca deve usar caminhos codificados para locais específicos, como "c: \ Arquivos de Programas", pois isso pode não funcionar outras versões do Windows porque o local das pastas e diretórios pode mudar com versões diferentes do Janelas.

A função de API do Windows SHGetFolderPath

O SHGetFolderPath está disponível no SHFolder unidade. SHGetFolderPath recupera o caminho completo de uma pasta conhecida identificada.

Aqui está uma função de wrapper personalizado em torno do SHGetFolderPath API para ajudá-lo a obter qualquer uma das pastas padrão para todos ou para o usuário do Windows atualmente conectado.

instagram viewer

Aqui está um exemplo do uso da função SHGetFolderPath:

  • Solte um TRadioButtonGroup (nome: "RadioGroup1") em um formulário
  • Solte um TLabel (nome: "Label1") em um formulário
  • Adicione 5 itens ao grupo de rádio:
    • "[Usuário atual] \ Meus documentos"
    • "Todos os usuários \ Dados do aplicativo"
    • "[Específico do usuário] \ Dados do aplicativo"
    • "Arquivos de Programas"
    • "Todos os usuários \ documentos"
  • Manipule o evento OnClick do RadioGroup como:

Nota: "[Usuário atual]" é o nome do usuário do Windows atualmente conectado.

Nota: O SHGetFolderPath é um superconjunto do SHGetSpecialFolderPath.

Você não deve armazenar dados específicos do aplicativo (como arquivos temporários, preferências do usuário, arquivos de configuração do aplicativo etc.) na pasta Meus Documentos. Em vez disso, use um arquivo específico do aplicativo localizado em uma pasta válida de dados do aplicativo.

Sempre anexe uma subpasta ao caminho que SHGetFolderPath retorna. Use a seguinte convenção: "\ Dados do Aplicativo \ Nome da Empresa \ Nome do Produto \ Versão do Produto".