我如何输入要替换的字符串
(Environment.SpecialFolder.ApplicationData)作为.ApplicationData部分需要根据传递给它的变量进行更改。
string specialFolder = ("Environment.SpecialFolder." + specialLocation);
specialLocation = "this will change depending on path location";
path = Path.Combine(Environment.GetFolderPath("specialFolder"),
@""+backupPath);
希望我已经说清楚了。
感谢
答案 0 :(得分:1)
使用Enum.TryParse是您的答案
例如:
string s = "ApplicationData";
Environment.SpecialFolder sf;
if(Enum.TryParse<Environment.SpecialFolder>(s, true, out sf))
Console.WriteLine(Environment.GetFolderPath(sf));
因此,您的代码可以写成:
Environment.SpecialFolder sf;
if(Enum.TryParse<Environment.SpecialFolder>(specialLocation, true, out sf))
{
path = Path.Combine(Environment.GetFolderPath(sf), backupPath);
.....
}
答案 1 :(得分:0)
您需要使用枚举解析字符串值。如果你想在字符串不正确的情况下抛出异常,你可以使用Parse。更安全的方法是使用try parse。
Environment.SpecialFolder folder;
if (Enum.TryParse<Environment.SpecialFolder>("ApplicationData",true, out folder))
{
var path = Environment.GetFolderPath(folder);
}