Переменные среды для встроенных библиотек Windows?

Переменные среды для встроенных библиотек Windows?

Определяет ли Windows 7 переменные среды для уже существующих библиотек? Мне интересно, потому что я часто использую их при вводе пути в диалогах Открыть/Сохранить или в командной Runстроке. Например, чтобы попасть в каталог настроек Firefox текущего пользователя, run:

%APPDATA%\Mozilla\Firefox

Это удобный ярлык, и я надеялся найти что-то похожее для путей к библиотекам. Например:

%LIBRARIES%\Music\
%MUSIC%\

Я понимаю, что библиотеки объединяют одну или несколько папок верхнего уровня, поэтому может быть неоднозначность. У Microsoft естьсписокпеременных среды, но большинство из них недоступны через пользовательский интерфейс Windows.Этот вопростакже ссылается на хороший список, но не включает папку пользователя Documents, Musicпапку и т. д.

решение1

Библиотеки Windows на самом деле являются просто xmlфайлами, которые определяют, как отображать коллекцию папок. Они отображаются с помощью специального расширения оболочки, встроенного в Windows. Поскольку они не являются настоящими папками, к файлам и подпапкам нельзя получить прямой доступ через путь.

СоткрытьВ окне проводника вы можете ввести в адресную строку:

libraries\music

Это делаетнетпохоже, работает из File Nameокна диалогов открытия/сохранения. И не работает с runкомандой.

Что вы можете с этим сделать:

Windows Vista представила "Известные папки" концепция. Он заменяет старый "список идентификаторов постоянных специальных элементов" (CSIDL) методология, используемая в XP. Существуетотличный поств блоге Windows; там обсуждается это изменение и дается обзор *.library-msструктуры файла.

Известные папки имеют GUID. Чтобы получить к ним доступ через командную строку, добавьте к своему URI префикс knownfolder:. Естьдесятки определеныMusic. Например, чтобы получить доступ к папке текущего пользователя , runвыполните следующую команду:

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

Это приведет вас к предопределенномупо умолчаниюпапка с музыкой. Так что, если вы изменили папку библиотеки, это, к сожалению, не сработает.

Папка библиотеки по умолчанию может бытьдоступпрограммно с помощьюIShellLibraryinterface, но это выходит за рамки моего изначального вопроса. Кажется, что наилучшим подходом будет либо:

  1. Вручную сопоставьте переменные окружения с их известными путями
  2. Или вручную сопоставьте переменные окружения, используя их GUID. Преимущество здесь в том, что вы делаете это системной переменной и она работает для всех пользователей).

решение2

Если вы хотите %music%указать папку с музыкой, то просто добавьте новую переменную окружения в свою систему.

Если вы хотите %Libraries%указать на свои библиотеки, то создайте ярлык c:\, например, на , а затем создайте новую переменную окружения, указывающую на ваш c:\librariesярлык. (но прямой вход в подпапки работать не будет, но вы можете создать новую переменную для тех, которые находятся в библиотеках)

Затем вы можете вызвать их оба из run с помощью %music%или%Libraries%

Связанный контент