2

假设用户在 %temp% 之类的配置文件中指定了一个路径。我可以通过在地址栏中输入 %temp% 来到达那里。

但是,如果我想使用 C# 程序到达那里,我看到到达那里的唯一方法是使用http://msdn.microsoft.com/en-us/library/system.environment.getfolderpath.aspx

是否可以在 C# 代码本身内解析用户指定的路径,如 %temp% 或 %userprofile%/local?

4

2 回答 2

7

您应该使用Environment.ExpandEnvironmentVariables来扩展路径中的所有变量。不要忘记,如果这是一项服务,服务通常在不同的用户下运行。

于 2013-09-26T17:50:06.000 回答
1

你应该使用Environment.GetEnvironmentVariable. 一个例子

// Change the directory to %WINDIR%
Environment.CurrentDirectory = Environment.GetEnvironmentVariable("windir");
DirectoryInfo info = new DirectoryInfo(".");
lock(info)
{      
  Console.WriteLine("Directory Info:   "+info.FullName);
}
于 2013-09-26T17:50:40.450 回答