2

我将如何输入要替换的字符串

(Environment.SpecialFolder.ApplicationData) 作为 .ApplicationData 部分需要根据传递给它的变量进行更改。

string specialFolder = ("Environment.SpecialFolder." + specialLocation);
specialLocation = "this will change depending on path location"; 
path = Path.Combine(Environment.GetFolderPath("specialFolder"),
                @""+backupPath);

希望我已经说得够清楚了。

谢谢

4

2 回答 2

2

使用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);
    .....
}
于 2013-11-09T14:01:50.627 回答
0

您需要使用枚举解析字符串值。如果您希望在字符串不正确的情况下抛出异常,您可以使用 Parse。更安全的方法是使用 try parse。

Environment.SpecialFolder folder;
                if (Enum.TryParse<Environment.SpecialFolder>("ApplicationData",true, out folder))
                {
                    var path = Environment.GetFolderPath(folder);
                }  
于 2013-11-09T14:09:56.240 回答