3

我的应用程序有一些数据(配置文件、工作文件等),应该放在硬盘上。因此,我对此有一些疑问:

  1. 最好的存放地点在哪里?用户文档中的特殊文件夹,如“...用户文档\MyAppFolder”或 AppData 或其他什么?
  2. 卸载过程中是否删除这些文件?如果是,那么如果用户想要安装新版本的程序,文件将会丢失,是吗?
  3. 在安装期间或首次启动应用程序期间创建此文件夹?
4

1 回答 1

4

这里需要考虑三件事:

  1. 数据的性质是什么:设置或文档——或其中的一些?
  2. 应用程序是按用户还是按机器安装的?
  3. 设置数据是否应该与用户一起漫游?

有时很难确定数据的性质。为简单起见,将数据分为两类:设置和文档。它们通常存储在不同的地方,如The New Old Thing 博客中所述

我的文档和应用程序数据之间最重要的区别在于,我的文档是用户存储文件的地方,而应用程序数据是程序存储文件的地方。

如果应用程序是在每台机器上安装的,那么“应用程序安装程序”与用户数据无关。(如果不是,那么哪些用户的数据?)用户数据应该由应用程序在用户使用应用程序时创建(设置)或由用户通过应用程序创建(文档)。现在,当用户第一次启动应用程序时,它可以为用户提供一种管理每个用户数据的方法,以便用户可以在卸载应用程序或决定不再使用它之后进行清理。

方法可能是应用程序使用 UninstallString 创建的用户 ARP 条目,该条目运行它复制到用户的 AppData 文件夹的内容。或者,它可能是执行相同操作的用户快捷方式。或者,如果您想要用户不触发的东西,用户运行注册表项以启动一个实用程序,该实用程序检测应用程序是否已被卸载(这可能是一个挑战)。

如果应用程序是按用户安装的,那么“应用程序安装”可以删除应用程序、设置和文档,但应该只删除应用程序。

文档是用户的,但取决于应用程序,如果用户无意再次运行应用程序,则文档可能一文不值。您应该离开他们或询问。

至于设置,正如您所指出的,如果用户将来运行任何版本的应用程序,它们将很有用。应用程序应该能够升级或忽略较新或较旧版本的设置。

有关应用数据的更多视图,请参阅此其他 New Old Thing帖子


所以,回答你的问题:

  1. 两者都取决于文件是什么。
  2. 设置:可能(但如果每个用户安装了应用程序,则不能)。文件:没有。
  3. 通常应用程序应该创建应用程序数据,但如果您希望用户知道其文档的“所有用户”位置,则例外。

只有一起设计应用程序和安装程序才能产生最佳的用户体验。

于 2013-06-06T21:37:39.830 回答