Uso legítimo da pasta “Documentos” do Windows em programas

38

Qualquer pessoa que goste da pasta Documentos para conter apenas as coisas que eles colocam lá sabe que a pasta Documentos padrão é completamente inadequada para esta tarefa. Todo programa parece querer colocar suas configurações, dados ou algo igualmente irrelevante na pasta Documents , apesar do fato de que existem pastas especificamente para este trabalho 1 . p>

Para que isso não pareça vazio, leve minha pasta pessoal "Documentos" como um exemplo. Eu nunca usei, em que eu nunca, sob nenhuma circunstância, salve qualquer coisa nessa pasta eu mesmo. E ainda, contém 46 pastas e 3 arquivos no nível superior, totalizando 800 arquivos em 500 pastas. São 190 MB de "documentos" que não criei. Obviamente, qualquer documento real se perderia imediatamente nessa bagunça.

A minha pergunta é : alguma coisa pode ser feita para melhorar a situação o suficiente para tornar os "Documentos" úteis novamente, digamos, nos próximos 5 anos? Os programadores podem ser de alguma forma educados em massa para não usá-lo como uma lixeira? O sistema operacional poderia começar a relatar algum local "falso" oculto sob AppData por meio das APIs existentes, permitindo apenas que o Explorer e as várias caixas de diálogo Abrir / Salvar saibam onde reside a pasta "real" Documentos? Ou algumas tentativas são completamente inúteis ou até desnecessárias?

1 Para o registro, aqui está um breve resumo dos vários diretórios padrão que devem ser usados em vez de "Documentos":

  • RoamingAppData para dados e configurações específicos do usuário . Este é o diretório a ser usado para dados não temporários específicos do usuário. Qualquer coisa colocada aqui estará disponível em qualquer máquina que um determinado usuário acessar em redes onde isso está configurado. Não coloque arquivos grandes aqui, porque eles diminuem o login / logout nesses ambientes.
  • LocalAppData para dados e configurações de usuário e máquina específicos . Esses dados são diferentes para todos os usuários e todas as máquinas. É também aqui que devem ser colocados dados muito específicos do usuário.
  • ProgramData para dados e configurações específicos da máquina . Estes são os mesmos, independentemente de qual usuário está conectado, e não irá se deslocar para outras máquinas em uma rede.
  • GetTempPath para todos os arquivos que podem ser apagados sem perda de dados quando não estiver em uso. Isso também é o lugar para coisas como caches , porque, como os dados temporários, não é necessário fazer o backup de um cache. Coloque seu enorme cache aqui e você salvará seu usuário de algum problema de backup.

"Documentos" em si só deve sempre ser usado se o usuário especificou manualmente inserindo um caminho ou selecionando-o em um diálogo Salvar. Essa é a única vez que é sempre apropriada para salvar coisas em "Documentos".

    
por Roman Starkov 15.02.2011 / 19:02
fonte

8 respostas

17

Seria necessário algum incentivo visível. Por exemplo, se os usuários tivessem que fornecer permissão para salvar na pasta Documentos (no momento da instalação), os programadores desejariam evitar o acionamento dessa caixa de diálogo assustadora.

Uma vez que você tenha o incentivo, as pessoas naturalmente se depararão com documentação como "Salvar dados específicos do programa da máquina em ProgramData" ao tentar resolvê-lo.

Na verdade, muitos problemas podem ser resolvidos com um bom framework de permissões ...

    
por 16.02.2011 / 13:57
fonte
4

My question is: can anything be done to improve the situation sufficiently to make "Documents" useful again, say over the next 5 years?

Em teoria, algo poderia ser feito. Em teoria, a Microsoft poderia:

  • Crie um local melhor para colocar os arquivos de configuração do usuário (no processo, reconhecendo que muitos aplicativos têm válido razões para colocar configurações em arquivos).
  • Adicione isso às diretrizes padrão do desenvolvedor de aplicativos do Windows. (Eu suponho que tais diretrizes existem.)
  • Faça uma grande coisa sobre a conformidade dos aplicativos com as diretrizes, por exemplo, por meio de algum tipo de certificação ou pela criação e publicação de scorecards de conformidade. "Nomear e envergonhar" poderia fazer maravilhas ...

Deve ser dito que a Apple tem sido tradicionalmente muito mais proativa com esse tipo de coisa. E isso mostra a qualidade das coisas que são executadas em suas plataformas.

    
por 16.02.2011 / 10:54
fonte
2

Eu acho que você responde a pergunta na medida em que isso se resume à educação do programador. Eu não sei o suficiente sobre a API do Windows e se o armazenamento de material em Documents é particularmente fácil, mas se não for, os aplicativos não devem poluí-lo. Eu acho que se trata de ter uma localização conhecida por usuário, onde os dados podem residir. Para o tipo de dados sobre o qual você fala, o Mac OS X usa a pasta ~/Library , embora alguns aplicativos ainda coloquem as coisas em Documents . Talvez algo similar deva (existe?) Existir para o Windows.

Pessoalmente, mantenho meus Documentos em uma pasta com o mesmo título sob minha raiz do Dropbox, o que adiciona um nível extra de trabalho para mim, mas me poupa do problema que você levantou.

    
por 15.02.2011 / 20:02
fonte
2

Embora eu entenda que você quer se envolver em uma discussão sobre fazer com que os desenvolvedores parem de fazer isso, pode acabar se tornando uma daquelas coisas como ícones de notificação da barra de tarefas que não puderam ser interrompidos.

Já escrevi sobre a pasta Documentos, comparando-a com saindo de uma vizinhança ruim . Como usuário, eu criei um monte de hacks para tentar limpá-lo sozinho. Eu marcaria todas as pastas não convidadas como "ocultas", o que as faria desaparecer do Explorer. Gostaria de criar links simbólicos para o Visual Studio 2005, 2008, 2010 pastas em uma pasta comum "Visual Studio", etc.

Mas mesmo com os scripts do PowerShell para automatizá-lo, fiquei cansado de fazer isso em cada nova máquina que usei. Felizmente, no Windows 7, há outra opção que funciona muito bem para mim.

Como o Windows 7 tende a usar como padrão a biblioteca "Documentos" , ao contrário da pasta Documentos. Simplesmente removi a pasta% userprofile% \ documents desta biblioteca e adicionei minha pasta Dropbox. Então agora abrir / salvar caixas de diálogo padrão para este local e quando eu clico em Iniciar - > Documentos, leva-me ao meu Dropbox.

Por fim, adoraria ver algum tipo de certificação básica para aplicativos semelhantes às diretrizes da iOS App Store. Mas eles nem conseguem que os fabricantes de drivers assinem seus drivers ...

    
por 23.02.2011 / 05:28
fonte
1

Acho que a estratégia de longo prazo deve ser parar de armazenar qualquer coisa diferente de documentos em arquivos. Os dados do sistema, especialmente os , devem ser armazenados em sistemas de armazenamento que lembrem mais um banco de dados do que um sistema de arquivos. Pontos de bônus se esse banco de dados puder ser sincronizado de maneira fácil e automática com um serviço na Web, para que você tenha efetivamente um conjunto de configurações, independentemente de quantos computadores você usa e onde.

Eu não sei muito sobre a história dos sistemas de arquivos, mas parece-me que isso foi percebido bem cedo nesse sistema e os arquivos executáveis são uma "coisa" fundamentalmente diferente dos documentos. Então eles foram guardados em uma pasta especial (então chamada de diretório) como C:\DOS e o usuário estava basicamente no controle do restante da unidade.

Ninguém realmente previu quanto sistemas mais complexos e incontroláveis se tornariam ao longo dos anos e que confusão isso causaria. Acho que é hora de repensar a tecnologia a partir dos limites e alavancar a sinergia da nuvem. Pontos de bônus se uma solução de código aberto viável decolar antes que uma empresa o faça:)

    
por 15.02.2011 / 21:16
fonte
1

Mesmo que algum programa ainda armazene alguns dados em Documentos , acho que a maioria armazena seus dados em AppData , então eles já estão indo na direção certa, no entanto, não há muito que os usuários possam fazer: cada programa é responsável pelo que faz.

    
por 16.02.2011 / 01:45
fonte
1

Solução:
 1. Clique com o botão direito do mouse na pasta 'Documents' e selecione a guia 'location'.
 2. Mude a localização dos 'Documentos' para algum outro lugar que eu escolha 'C: \ Admin \ Configs'  (uma vez feito isso, todas as aplicações, escrevendo para 'documents', devem ser enviadas para C: \ Admin \ Configs.

Mas isso resolve apenas metade do problema, o próximo passo deve ser bastante óbvio.

  1. Crie uma nova pasta em 'C: \ User \\ Documentation'

Você deve então adicionar esse diretório às bibliotecas e excluir o antigo, eu deliberadamente defini um nome de pasta diferente em 'C: \ User \ ** Documentation **' porque eu queria garantir que nada fosse difícil caminho para essa pasta.

Se a pasta 'documents' aparecer novamente no seu C: \ User \ devido ao fato acima, basta clicar com o botão direito na pasta e torná-la uma pasta invisível.

    
por 20.12.2013 / 09:13
fonte
0

Armazenar configurações em um arquivo de texto é uma solução multi-plataforma abrangente.

A menos que os desenvolvedores criem um padrão de banco de dados de configurações entre plataformas, acho que a maioria de nós continuará usando arquivos de texto despejados no diretório do usuário.

Aqueles que são inteligentes criarão interfaces de configurações diferentes para sistemas que permitem mecanismos de armazenamento de configurações especializadas (como o Registro do Windows).

    
por 15.02.2011 / 23:02
fonte