Variáveis de ambiente para bibliotecas internas do Windows?

2

O Windows 7 define variáveis de ambiente para bibliotecas pré-existentes? Estou curioso porque geralmente os uso ao digitar um caminho nas caixas de diálogo Abrir / Salvar ou no prompt Run . 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 os caminhos das bibliotecas. Por exemplo:

%LIBRARIES%\Music\
%MUSIC%\

Eu entendo que as bibliotecas agregam uma ou mais pastas de nível superior, então pode haver ambigüidade. A Microsoft tem uma lista de variáveis de ambiente, mas a maioria não é acessível através da interface do Windows. Esta questão também tem links para uma boa lista, mas não inclui a pasta Documents do usuário, a pasta Music , etc.

    
por zourtney 02.02.2011 / 20:37

2 respostas

5

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 que é incorporada ao Windows. Como não são pastas reais, os arquivos e subpastas não podem ser acessados diretamente por um caminho.

Com uma janela do explorador aberta , você pode digitar na barra de endereço:

libraries\music

Isso não parece funcionar na caixa File Name dos diálogos abrir / salvar. Nem funciona com o comando run .

O que você pode fazer sobre isso:

O Windows Vista introduziu o conceito " Pastas Conhecidas ". Ele substitui a antiga "lista de ID de item especial constante" ( CSIDL ) metodologia utilizada no XP. Existe um excelente post no Windows Blog; Ele discute essa alteração e fornece uma visão geral da estrutura do arquivo *.library-ms .

Pastas conhecidas têm GUIDs. Para acessá-los via linha de comando, prefixe seu URI com knownfolder: . Existem dezenas definidos . Para acessar a pasta Music do usuário atual, por exemplo, run o seguinte comando:

knownfolder:{4BD8D571-6D19-48D3-BE97-422220080E43}

Isto irá levá-lo à pasta predefinida de músicas . Então, se você mudou a pasta da biblioteca, isso infelizmente não funcionará.

A pasta padrão de uma biblioteca pode ser acessada programaticamente usando Interface da Biblioteca da Web , mas isso está fora do escopo da minha pergunta original. Parece que a melhor abordagem é a seguinte:

  1. Mapeie manualmente as variáveis do ambiente para o caminho conhecido
  2. Ou mapeie manualmente variáveis de ambiente usando seu GUID. A vantagem aqui é que você torna uma variável do sistema e faz com que ela funcione para todos os usuários).
por 03.02.2011 / 19:27
3

Se você quiser que %music% aponte para sua pasta de músicas, basta adicionar uma nova variável ambiental ao seu sistema.

Se você quiser que %Libraries% aponte para suas bibliotecas, crie um atalho em c:\ , por exemplo, e crie uma nova variável ambiental apontando para seu atalho c:\libraries . (mas entrar diretamente em subpastas não funcionará, mas você pode criar uma nova variável para aqueles que estão em Bibliotecas)

Você pode então chamar os dois de executar com %music% ou %Libraries%

    
por 02.02.2011 / 20:52