不同的Application SpecialFolders在WindowsXP和Windows Vista中指向哪些目录

Tho*_*enz 25 windows windows-xp environment-variables windows-vista

即我有:

  • Environment.SpecialFolder.ApplicationData
  • Environment.SpecialFolder.CommonApplicationData
  • Environment.SpecialFolder.LocalApplicationData

我不清楚这些是在Windows XP和/或Windows Vista中指出的.

到目前为止,我发现ApplicationData指向XP中当前用户的ApplicationData文件夹和Vista中的漫游应用程序数据文件夹.

我还想知道是否有关于何时使用的一般指导原则.

MSa*_*ers 29

对此没有单一的答案.事实上,这正是为什么定义这些"SpecialFolder"的原因.您可以使用它们而不是硬编码路径.

Environment.SpecialFolder.ApplicationData是最常见的一个.此文件夹包含除用户文档之外的每用户非临时应用程序特定数据.一个常见的例子是设置或配置文件.

Environment.SpecialFolder.CommonApplicationData类似,但在用户之间共享.例如,您可以使用它来存储文档模板.

Environment.SpecialFolder.LocalApplicationData是ApplicationData的非漫游替代方案.因此,您永远不会在那里存储重要数据.但是,因为它是非漫游的,所以它是临时文件,缓存等的好位置.它通常位于本地磁盘上.

  • 请注意,CommonApplicationData具有受限访问权限,使其基本上只读用于除用户以外的所有写入权限.例如,请参阅http://stackoverflow.com/questions/22107812/privileges-owner-issue-when-writing-in-c-programdata (2认同)

Mad*_*Boy 15

这很容易检查.Use Environment.GetFolderPath(...);并使用MessageBoxConsole.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");
    }
}
}
Run Code Online (Sandbox Code Playgroud)

我在Win 7 x64上的结果

C:\ Users\myUsername\AppData\Roaming
C:\ ProgramData
C:\ Users\myUsername\AppData\Local


Ora*_*son 6

对于那些想知道这些特殊文件夹在 Windows XP 上的评估结果但没有 XP 来运行它的人,这是我在运行 @MadBoy 的代码时得到的:

应用数据:

C:\Documents and Settings\YourAccountHere\Application Data
Run Code Online (Sandbox Code Playgroud)

通用应用数据:

C:\Documents and Settings\All Users\Application Data
Run Code Online (Sandbox Code Playgroud)

本地应用数据:

C:\Documents and Settings\YourAccountHere\Local Settings\Application Data
Run Code Online (Sandbox Code Playgroud)