0

有没有办法将特殊文件夹路径转换为完整的文件名(并返回),还是我需要自己编写代码(我不知道,但如果存在则没有意义)

例如,我想存储应用程序模板的文件名,然后用户可以更改它,它存在于 LocalApplicationData 文件夹中。

我想存储的是文件的位置,格式为:

%LOCALAPPDATA%\MyApp\Templates\Report Template.xls

这样这个应用程序文件就可以被许多用户使用,每个用户打开它时都会从他们自己的本地应用程序目录中获取报告模板。

我可以写

replace("%LOCALAPPDATA%", _
    System.Environment.GetFolderPath(
         System.Environment.SpecialFolder.LocalApplicationData))

and vice versa

当我来保存文件位置时,是否有一个 System.IO (或类似的)调用来为我执行此操作,而不必遍历每个可能的特殊文件夹?

4

2 回答 2

4

看:Environment.ExpandEnvironmentVariables

不过,环顾四周后,我认为没有内置的方法可以将其转换回来。

你可以这样做:

static void Main(string[] args)
{
    var values = Enum.GetValues(typeof(Environment.SpecialFolder));

    foreach (Environment.SpecialFolder value in values)
        Console.WriteLine(value + " : " + Environment.GetFolderPath(value));

    Console.ReadKey();
}
于 2008-11-07T10:12:37.847 回答
0

识别“特殊文件夹”的正常 Windows 方法是通过它们的CSIDL。Environment.SpecialFolder 只是它的一个小包装。正如您所指出的,在对 chakrit 帖子的评论中,大多数 CSIDL 根本没有相应的环境变量。这可能是为什么没有功能可以为少数 CSIDL 找到环境变量的原因。

于 2008-11-07T10:43:45.740 回答