作为开发人员,我应该如何使用Windows Vista(和Windows 7)中的特殊文件夹?

Nes*_*tor 26 special-folders windows-vista windows-7

我应该在哪里保存与我的申请相关的数据?我应该在哪里保存配置文件?我应该在哪里保存临时文件?我应该在"文件"中这样做吗?"应用程序数据"?等等...

将数据保存到磁盘的最佳做法是什么(我想,特殊文件夹的最佳做法是什么?!)?

Fox*_*ire 28

ApplicationData:您的应用程序需要的所有内容都是"每用户"数据,不属于其他类别.标准配置文件将在此处.

CommonApplicationData:不是"每用户"数据的一切.

LocalApplicationData:每个用户和非漫游的数据.例如,您希望确保它只存储在此计算机上的所有内容(如计算机激活码,通常还包括缓存/临时数据).标准临时文件将在这里.

MyDocuments:用户实际将其识别为"可识别的单个文档"的用户数据.

如果您不关心文件名,还可以使用tempfile API在temp目录中生成临时文件.你不应该手动执行此操作.例如,在.NET中,您可以将其Path.GetTempFileName()用于此目的.

  • @LarsH:"但我不清楚粗体名称是什么......"它们是.Net Environment.SpecialFolder枚举常量 - 尝试点击它们.:-) (2认同)

Rem*_*anu 10

Windows 7客户端软件徽标计划:

  • 默认情况下,应将应用程序安装到Program Files文件夹中.用户数据或应用数据,必须永远不会被存储在此位置,因为的安全权限%PROGRAMFILES%为天然的32位和64位应用程序,和%PROGRAMFILES(x86)的%为32位应用程序在x64运行分别覆盖彼此的数据和设置.
  • 必须在计算机上的用户之间共享的所有应用程序数据都应存储在ProgramData中
  • 特定用户专用且不与计算机的其他用户共享的所有应用程序数据必须存储在Users \\ AppData中
  • 切勿直接写入"Windows"目录和/或子目录.使用正确的方法安装文件,如字体或驱动程序
  • 在"每台机器"安装中,用户数据必须在首次运行时写入,而不是在安装期间写入.这是因为在安装时没有正确的用户位置来存储数据.应用程序尝试在安装后修改机器级别的默认关联行为将失败.相反,必须在每个用户级别声明默认值,这可以防止多个用户覆盖彼此的默认值.