Aqui estão algumas considerações não mencionadas até agora, que podem ou não ser relevantes, dependendo do aplicativo para o qual você deseja usar.
Verificação de integridade da configuração
Com um único arquivo de configuração, pegue um hash criptográfico. Feito. Se for diferente da próxima vez que você ler o arquivo, você sabe que ele foi modificado manualmente ou corrompido.
Com uma configuração baseada no sistema de arquivos, você precisa percorrer a árvore inteira, lendo os itens em uma ordem especificada antes de alimentá-los um a um no hash. Não apenas o conteúdo do arquivo, mas também os nomes de diretório e arquivo. Muito algumas coisas para fazer.
Relacionado a isso,
Robustez
Mesmo se você tiver verificações de integridade, há muito mais que pode dar errado em um sistema de arquivos. Basta pensar em um usuário olhando através dos arquivos, movendo alguns arquivos / diretórios para outros locais, com seus movimentos do mouse e um dedo nervoso.
Como você lida com um link para um diretório pai que o lança em um loop infinito quando você o percorre desmarcado. Com a corrupção correta que não é verificada pelo seu aplicativo, ele pode ser renderizado completamente, exigindo uma desinstalação, limpeza manual e reinstalação.
Um backup de um arquivo de configuração corrompido é muito mais fácil de restaurar.
Falando sobre backups,
Usuários avançados e administradores
O que eles querem fazer?
- Modifique-o de maneiras úteis, mas não é possível com as caixas de diálogo de configuração integradas.
- Backup e restauração da configuração.
- Exportar / importar da configuração.
- Transfira a configuração para um amigo ou para sua segunda máquina.
- Distribua uma configuração obrigatória para um grande número de máquinas e usuários.
Com um único arquivo de configuração baseado em texto, tudo o que você precisa já está embutido no sistema operacional: Copiar, mover e renomear arquivos, um editor de texto, copiar e colar. A transferência é tão fácil quanto anexar um arquivo a um e-mail.
Com o sistema de arquivos, tudo o que não é fornecido pelo seu aplicativo é difícil de fazer. Modificando manualmente uma opção de texto? É melhor tomar cuidado para não adicionar um End Of Line adicional. Modificando uma opção binária? Hmm, editor hexadecimal?
Transfere a configuração por email? Você precisa de ferramentas adicionais: crie um arquivo zip e anexe-o. Então, espere que as opções binárias internas não ativem o verificador de vírus de correio e que ele passe.
Para todos os efeitos práticos, uma configuração baseada no sistema de arquivos é tão boa quanto uma caixa preta para um não-programador.
EDIT: Tamanho do cluster
Um arquivo separado para cada opção pode usar bastante espaço no disco rígido. Quando cada opção de 5 bytes come um cluster completo de 64KB, e você tem muitos deles ... Faça as contas.