O que é espaço do usuário? O espaço do usuário é o local no sistema de arquivos onde os usuários colocam seus arquivos pessoais, suas “coisas”. Esta é a estrutura de pastas do espaço do usuário no Windows XP sistema operacional:
Documents and SettingsUser Application Data Cookies Desktop Favorites Local Settings My Documents My Music My Pictures My Recent Documents NetHood PrintHood SendTo Start Menu
E aqui está a estrutura de pastas do espaço do usuário no diretório Windows Vista sistema operacional:
UsersUser AppData Local Roaming Contacts Desktop Documents Downloads Favorites Links Music Pictures Saved Games Searches Videos
Este Nova estrutura de pastas do espaço do usuário do Vista pode parecer estranhamente familiar para as pessoas que usam sistemas operacionais baseados em Unix. Ela dá nova vida ao famosa citação “Aqueles que não entendem o Unix estão condenados a reinventá-lo de forma ruim”. De qualquer forma, estou feliz por não termos mais que lidar com um caminho de usuário padrão assustadoramente longo — com espaços embutidos agravantes, inclusive – para nossas coisas pessoais. Se um usuário estiver fazendo anotações em um arquivo de texto, podemos razoavelmente esperar encontrar essas anotações no seguinte caminho:
Documents and SettingsUserMy Documentsnotes.txt UsersUserDocumentsnotes.txt
Agora que já estabelecemos o que é e onde fica o espaço do usuário, tenho uma mensagem para todos os programadores que estão lendo isso, inclusive eu. Mantenha suas patas sujas e imundas fora do meu espaço pessoal de usuário!
Dê uma olhada no seu Documents
agora mesmo. O senhor pode ir em frente. Veja. O senhor vê algum arquivo ou pasta que não foi criado por ele? Se sim, o senhor foi vítima. Os aplicativos nunca devem criar ou modificar nada em o senhor documentos sem que o senhor o senhor permissão. E, no entanto, infelizmente, isso acontece o tempo todo. Os aplicativos e, mais especificamente, os programadores que os escreveram, acham que é perfeitamente aceitável bombardear seu espaço pessoal de usuário com o lixo deles.
Bem, não é.
Como Omar Shahine apontou originalmente há quase dois anoso senhor deveria estar furioso e não aceitar mais isso. Se os aplicativos precisam armazenar arquivos compartilhados, é isso que o AppData
e o Application Data
servem para as pastas. No OS X, que herda muitas convenções do sistema de arquivos do BSD Unix, a Apple tem um ótimo conjunto de orientações apropriadamente intitulado Não polua o espaço do usuário:
É importante lembrar que o domínio do usuário (
/Users
) é destinado a arquivos criados pelo usuário. Com exceção do domínio~/Library
seu aplicativo nunca deve instalar arquivos no diretório pessoal do usuário. Em particular, o senhor nunca deve instalar arquivos no diretórioDocuments
do usuário ou no diretório/Users/Shared
. Esses diretórios só devem ser modificados pelo usuário.Mesmo que o seu aplicativo forneça clip art ou arquivos de amostra que o usuário normalmente manipularia, o senhor deve colocar esses arquivos no diretório local ou no diretório do usuário.
Library/Application
do usuário por padrão. O usuário pode mover ou copiar arquivos desse diretório conforme desejar. Se estiver preocupado com a possibilidade de o usuário encontrar esses arquivos, inclua uma forma de o usuário navegar ou acessá-los diretamente da interface de usuário do seu aplicativo.
Descobrir isso me fez perceber o quanto eu sentia falta dos bons e velhos tempos de convenções rígidas do sistema operacional e da GUI. É verdade que a Apple está se esquivando um pouco ao herdar as convenções bem usadas dos sistemas operacionais Unix clássicos. Mas grande parte do Windows parece perigosamente ad-hoc em comparação.
De qualquer forma, é nossa obrigação, como programadores, permitir que as pastas do usuário pertençam ao usuário. Faça a coisa responsável e armazene os arquivos do seu aplicativo em um local apropriado, não como lixo virtual entre os outros arquivos do usuário. Por favor não polua o espaço do usuário.