Есть ли какая-то готовая функция для разбора %specialfolders%?


Я хотел бы, чтобы моя программа командной строки принимала параметры файла в виде:

-out:%MyDocuments%dummy.xps

И с %MyDocuments% автоматически заменяется на:

Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)

Я знаю, что это легко написать функцию, но я думаю, что это уже должно быть сделано где-то, поэтому я не хочу заново изобретать колесо.

1 4

1 ответ:

Вы можете использовать Environment.ExpandEnvironmentVariables(variable);

Входные данные не обязательно должны быть одной переменной, это может быть "запрос", как и ваш путь, со встроенными переменными, и он расширит все те, которые он находит/распознает. Это показано в фрагменте по ссылке, приведенной ниже:

String query = "My system drive is %SystemDrive% and my system root is %SystemRoot%";
str = Environment.ExpandEnvironmentVariables(query);
Console.WriteLine("ExpandEnvironmentVariables: {0}  {1}", Environment.NewLine, str);