¿Variables de entorno para las bibliotecas integradas de Windows?

¿Variables de entorno para las bibliotecas integradas de Windows?

¿Windows 7 define variables de entorno para bibliotecas preexistentes? Tengo curiosidad porque a menudo los uso cuando escribo una ruta en los cuadros de diálogo Abrir/Guardar o desde el Runmensaje. Por ejemplo, para acceder al directorio de configuración de Firefox del usuario actual run,:

%APPDATA%\Mozilla\Firefox

Es un atajo útil y esperaba encontrar algo similar para las rutas de la biblioteca. Por ejemplo:

%LIBRARIES%\Music\
%MUSIC%\

Entiendo que las bibliotecas agregan una o más carpetas de nivel superior, por lo que podría haber ambigüedad. Microsoft tiene unlistade variables de entorno, pero no se puede acceder a la mayoría a través de la interfaz de usuario de Windows.Esta preguntatambién enlaza a una buena lista, pero no incluye Documentsla carpeta, Musiccarpeta, etc. de un usuario.

Respuesta1

Las bibliotecas de Windows son, de hecho, sólo xmlarchivos que definen cómo mostrar una colección de carpetas. Se muestran mediante una extensión de shell especial integrada en Windows. Dado que no son carpetas reales, no se puede acceder directamente a los archivos y subcarpetas a través de una ruta.

Con unabiertoventana del explorador, puede escribir en la barra de direcciones:

libraries\music

Esto hacenoParece funcionar desde el File Namecuadro de diálogo abrir/guardar. Tampoco funciona con el runmando.

Qué puedes hacer al respecto:

Windows Vista introdujo el "Carpetas conocidas"concepto. Reemplaza la antigua "lista de ID de artículos especiales constantes" (CSIDL) metodología utilizada en XP. Hay unexcelente publicaciónen el Blog de Windows; analiza este cambio y proporciona una descripción general de la *.library-msestructura del archivo.

Las carpetas conocidas tienen GUID. Para acceder a ellos a través de la línea de comando, anteponga su URI con knownfolder:. Haydocenas definidas. Para acceder a la carpeta del usuario actual Music, por ejemplo, runel siguiente comando:

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

Esto lo llevará a la configuración predefinida.por defectocarpeta de música. Entonces, si ha cambiado la carpeta de la biblioteca, lamentablemente esto no funcionará.

La carpeta predeterminada de una biblioteca puede seraccedidoprogramáticamente usandoBiblioteca IShellinterfaz, pero eso está fuera del alcance de mi pregunta original. Parece que el mejor enfoque es:

  1. Asigne manualmente variables de entorno a su ruta conocida
  2. O asigne manualmente variables de entorno utilizando su GUID. La ventaja aquí es que lo convierte en una variable del sistema y hace que funcione para todos los usuarios).

Respuesta2

Si desea %music%señalar su carpeta de música, simplemente agregue una nueva variable ambiental a su sistema.

Si desea %Libraries%apuntar a sus bibliotecas, cree un acceso directo c:\, por ejemplo, y luego cree una nueva variable ambiental que apunte a su c:\librariesacceso directo. (pero entrar directamente en subcarpetas no funcionará, pero puedes crear una nueva variable para las que están en Bibliotecas)

Luego puedes llamarlos a ambos desde run with %music%o%Libraries%

información relacionada