
Como pode ser visto em outras perguntas na Internet e aqui mesmo no SuperUser (por exemploImpedir que programas usem Meus Documentos), os usuários do Windows acham muito irritante que os programas decidam por si mesmos adicionar suas próprias pastas à pasta Documentos do usuário.
A pasta Documentos do usuário, assim como a pasta Música ou Imagens, serve para que seus arquivos pessoais sejam gerenciados, estruturados e organizados de uma forma que faça sentido apenas para ele. Tantos programas despejam seus arquivos aqui que pode rapidamente se tornar impossível encontrar seus próprios documentos reais.
Se você vasculhar a Internet e o SuperUser, encontrará os seguintes conselhos variados, todos os quais não são soluções para a questão:Como posso impedir que isso aconteça?
- Mova sua pasta Documentos para outro lugar e crie uma nova pasta que o sistema não sabe que é realmente o que você usará para seus documentos. (Não é bom: euquerero sistema para saber onde guardo meus documentos, para todas as outras vezes isso é útil.)
- Coloque todo o seurealdocumentos dentro de uma subpasta dentro da pasta Documentos. (Não adianta: por que eu deveria sempre cavar um nível para chegar aos meus documentos e passar por todas as pastas de spam no nível principal?)
- Limpe manualmente a pasta periodicamente. (Não é bom: isso quebrará muitos desses programas.)
- Vários métodos para impedir a criação não autorizada de pastas. (Não é bom: isso quebrará muitos desses programas.)
- Execute programas em uma VM. (Não é bom: exagero para 99% dos cenários.)
- Não use esses programas. (Não é bom: preciso usar esses programas.)
Finalmente você pode chegar à solução que uso atualmente, que considero a melhor de muitas ruins:
- (Opcional: mova as pastas problemáticas para outro lugar e vincule esse local de volta a Documentos.)
- Esconderas pastas ofensivas em Documentos.
Eca!
(Só para dar um exemplo simples de por que esse estilo de solução ainda é inadequado: deve-se ser capaz de apontar, por exemplo, um software de Backup diretamente para Usuários/Documentos – ou mesmo, copiar a pasta inteira – e saber exatamente o que se está obtendo. Além disso , muitas pessoas precisam manter "Mostrar arquivos ocultos" ativado.)
Aos poucos estou chegando a uma pergunta! – isso não é apenas um discurso retórico! A observação final é ressaltar que a razão pela qual esse problema ocorre é porque os programadores são preguiçosos e despejam arquivos em um local que podem ter certeza de que pode ser gravado pelo usuário – mesmo que existam pastas AppData dedicadas disponíveis. Depois que esse comportamento for codificado, apenas o desenvolvedor poderá alterá-lo – e a maioria não o fará.
Então. Só posso imaginar uma solução possível e é esta.De alguma forma, a variável de ambiente que determina a localização do usuário/documentos deve ser apresentada de forma diferente para programas específicos.Cheguei a uma pergunta -
Como conseguir isso?
Responder1
Infelizmente, não há variável de ambiente para a localização dos documentos do usuário.
Este caminho é retornado por uma função API chamada
SHGetKnownFolderPath
que retorna pastas conhecidas identificadas por seus
Constantes KNOWNFOLDERID, que para a pasta Documentos por usuário é a constante
FOLDERID_Documents
.
Portanto, para alterá-lo para programas específicos, seria necessário escrever um programa que criasse um gancho em todo o sistema SHGetKnownFolderPath
e retornasse o valor desejado. Não conheço nenhum produto desse tipo.
Não vejo outra solução senão alterar os parâmetros de configuração dos produtos em questão para definir um local de salvamento padrão. Caso não possuam tal parâmetro, a única ação possível é reclamar com o desenvolvedor.
Responder2
Provavelmente não existe uma solução para todos os programas. Para software já instalado, como observou harrymc, o programa pode ter configurações que você pode modificar ou entradas de registro que podem ser editadas. Se você estiver preocupado com a criação de pastas durante a instalação, acho que modificar os valores do registro paraPessoale (se existir){f42ee2d3-909f-4907-8871-4c22fc0bf756}, encontrado em HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
para apontar para outra pasta, ou seja, 'C:\Users\\BadApps` "enganaria" o instalador para criar pastas nesse local. Após a instalação, os valores deverão ser restaurados aos seus caminhos normais. Scripts simples podem ser escritos para "alternar" esses valores se esta for uma necessidade frequente.