Variáveis ​​de ambiente para bibliotecas integradas do Windows?

Variáveis ​​de ambiente para bibliotecas integradas do Windows?

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 Runprompt. 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 Documentspasta do usuário, Musicpasta etc.

Responder1

As Bibliotecas do Windows são, na verdade, apenas xmlarquivos 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 Namecaixa de diálogo abrir/salvar. Nem funciona com o runcomando.

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-msestrutura 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, runo 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 é:

  1. Mapeie manualmente variáveis ​​de ambiente para seu caminho conhecido
  2. 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:\librariesatalho. (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%

informação relacionada