O Windows 7 define variáveis de ambiente para bibliotecas pré-existentes? Estou curioso porque costumo usá-los ao digitar um caminho nas caixas de diálogo Abrir/Salvar ou no Run
prompt. Por exemplo, para acessar o diretório de configurações do Firefox do usuário atual run
:
%APPDATA%\Mozilla\Firefox
É um atalho útil e eu esperava encontrar algo semelhante para caminhos de biblioteca. Por exemplo:
%LIBRARIES%\Music\
%MUSIC%\
Entendo que as bibliotecas agregam uma ou mais pastas de nível superior, portanto pode haver ambiguidade. A Microsoft tem umlistade variáveis de ambiente, mas a maioria não é acessível por meio da interface do usuário do Windows.Essa questãotambém vincula a uma boa lista, mas não inclui a Documents
pasta do usuário, Music
pasta etc.
Responder1
As Bibliotecas do Windows são, na verdade, apenas xml
arquivos que definem como exibir uma coleção de pastas. Eles são exibidos usando uma extensão de shell especial integrada ao Windows. Como não são pastas reais, os arquivos e subpastas não podem ser acessados diretamente por meio de um caminho.
Com umabrirjanela do explorer, você pode digitar na barra de endereço:
libraries\music
Isso faznãoparece funcionar na File Name
caixa de diálogo abrir/salvar. Nem funciona com o run
comando.
O que você pode fazer sobre isso:
O Windows Vista introduziu o "Pastas conhecidas"conceito. Ele substitui a antiga" lista de IDs de itens especiais constantes "(CSIDL) metodologia usada no XP. Há umexcelente postagemno Blog do Windows; ele discute essa mudança e fornece uma visão geral da *.library-ms
estrutura do arquivo.
Pastas conhecidas possuem GUIDs. Para acessá-los via linha de comando, prefixe seu URI com knownfolder:
. Hádezenas definidas. Para acessar a pasta do usuário atual Music
, por exemplo, run
o seguinte comando:
knownfolder:{4BD8D571-6D19-48D3-BE97-422220080E43}
Isso o levará ao pré-definidopadrãopasta de música. Portanto, se você alterou a pasta da biblioteca, infelizmente isso não funcionará.
A pasta padrão de uma biblioteca pode seracessadoprogramaticamente usandoBiblioteca IShellinterface, mas isso está fora do escopo da minha pergunta original. Parece que a melhor abordagem é:
- Mapeie manualmente variáveis de ambiente para seu caminho conhecido
- Ou mapeie manualmente as variáveis de ambiente usando seu GUID. A vantagem aqui é que você a torna uma variável de sistema e faz com que funcione para todos os usuários).
Responder2
Se você quiser %music%
apontar para sua pasta de músicas, basta adicionar uma nova variável ambiental ao seu sistema.
Se você quiser %Libraries%
apontar para suas bibliotecas, crie um atalho c:\
, por exemplo, e crie uma nova variável ambiental apontando para o seu c:\libraries
atalho. (mas entrar diretamente nas subpastas não vai funcionar, mas você pode criar uma nova variável para aquelas que estão nas Bibliotecas)
Você pode então chamá-los de run with %music%
ou%Libraries%