即我有:
Environment.SpecialFolder.ApplicationData
Environment.SpecialFolder.CommonApplicationData
Environment.SpecialFolder.LocalApplicationData
我不清楚这些是否指向 Windows XP 和/或 Windows Vista。
到目前为止我发现ApplicationData在XP中指向当前用户的ApplicationData文件夹,在Vista中指向漫游应用程序数据文件夹。
我还想知道是否有关于何时使用哪个的一般准则。
对此没有单一的答案。事实上,这正是定义这些“SpecialFolder”的原因。您可以使用它们而不是硬编码路径。
Environment.SpecialFolder.ApplicationData
是最常见的一种。此文件夹保存除用户文档之外的每个用户的非临时应用程序特定数据。一个常见的示例是设置或配置文件。
Environment.SpecialFolder.CommonApplicationData
类似,但在用户之间共享。例如,您可以使用它来存储文档模板。
Environment.SpecialFolder.LocalApplicationData
是 ApplicationData 的非漫游替代方案。因此,您永远不会在那里存储重要数据。然而,因为它是非漫游的,所以它是临时文件、缓存等的好位置。它通常位于本地磁盘上。
Use Environment.GetFolderPath(...);
并使用
MessageBox
或 Console.Write
,它会告诉您它指向的位置。您只需制作一个简单的应用程序,为您显示路径并在 Windows XP 或 Windows Vista 下运行它。using System;
namespace EnvironmentCheck
{
class Program
{
static void Main(string[] args)
{
Console.Write(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\n");
Console.Write(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)+ "\n");
Console.Write(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)+ "\n");
}
}
}
我在 Win 7 x64 上的结果
C:\Users\myUsername\AppData\Roaming
C:\程序数据C:\Users\myUsername\AppData\Local
应用数据:
C:\Documents and Settings\YourAccountHere\Application Data
通用应用程序数据:
C:\Documents and Settings\All Users\Application Data
本地应用程序数据:
C:\Documents and Settings\YourAccountHere\Local Settings\Application Data