假设用户在 %temp% 之类的配置文件中指定了一个路径。我可以通过在地址栏中输入 %temp% 来到达那里。
但是,如果我想使用 C# 程序到达那里,我看到到达那里的唯一方法是使用http://msdn.microsoft.com/en-us/library/system.environment.getfolderpath.aspx。
是否可以在 C# 代码本身内解析用户指定的路径,如 %temp% 或 %userprofile%/local?
假设用户在 %temp% 之类的配置文件中指定了一个路径。我可以通过在地址栏中输入 %temp% 来到达那里。
但是,如果我想使用 C# 程序到达那里,我看到到达那里的唯一方法是使用http://msdn.microsoft.com/en-us/library/system.environment.getfolderpath.aspx。
是否可以在 C# 代码本身内解析用户指定的路径,如 %temp% 或 %userprofile%/local?
您应该使用Environment.ExpandEnvironmentVariables
来扩展路径中的所有变量。不要忘记,如果这是一项服务,服务通常在不同的用户下运行。
你应该使用Environment.GetEnvironmentVariable
. 一个例子:
// Change the directory to %WINDIR%
Environment.CurrentDirectory = Environment.GetEnvironmentVariable("windir");
DirectoryInfo info = new DirectoryInfo(".");
lock(info)
{
Console.WriteLine("Directory Info: "+info.FullName);
}