有没有办法使用C#使用特殊文件夹名称作为字符串访问特殊文件夹路径

时间:2018-05-20 23:15:48

标签: c# reflection special-folders

我从我读过的App.Config文件中获取了一个文本值,该文件标识了一个要使用的特殊文件夹,例如" LocalApplicationData"。我想使用此文本值来访问Environment.SpecialFolder值。我已经尝试了下面的代码语句,但它不起作用。有人可以指出出了什么问题,还是我应该尝试另一种方式?

object value = typeof(Environment.SpecialFolder).GetProperty("LocalApplicationData").GetValue(null);

通常会返回一个特殊的文件夹路径,其中包含如下语句:

Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)

如果我事先知道要指定哪个特殊文件夹,这很好。但在这种情况下,特殊文件夹名称可以是多个值,并从app.config文件中读取。这适用于WinForms应用程序而非Web应用程序。

提前致谢。

1 个答案:

答案 0 :(得分:4)

尝试:

var s = // read value from config.  Store in string
SpecialFolder sf;
if( Enum.TryParse( s, true, out sf))
{
    // success, now let's get the actual path
    var actualPath = Environment.GetFolderPath(sf)
}