我的应用程序有一些数据(配置文件、工作文件等),应该放在硬盘上。因此,我对此有一些疑问:
- 最好的存放地点在哪里?用户文档中的特殊文件夹,如“...用户文档\MyAppFolder”或 AppData 或其他什么?
- 卸载过程中是否删除这些文件?如果是,那么如果用户想要安装新版本的程序,文件将会丢失,是吗?
- 在安装期间或首次启动应用程序期间创建此文件夹?
我的应用程序有一些数据(配置文件、工作文件等),应该放在硬盘上。因此,我对此有一些疑问:
- 最好的存放地点在哪里?用户文档中的特殊文件夹,如“...用户文档\MyAppFolder”或 AppData 或其他什么?
- 卸载过程中是否删除这些文件?如果是,那么如果用户想要安装新版本的程序,文件将会丢失,是吗?
- 在安装期间或首次启动应用程序期间创建此文件夹?
这里需要考虑三件事:
有时很难确定数据的性质。为简单起见,将数据分为两类:设置和文档。它们通常存储在不同的地方,如The New Old Thing 博客中所述
我的文档和应用程序数据之间最重要的区别在于,我的文档是用户存储文件的地方,而应用程序数据是程序存储文件的地方。
如果应用程序是在每台机器上安装的,那么“应用程序安装程序”与用户数据无关。(如果不是,那么哪些用户的数据?)用户数据应该由应用程序在用户使用应用程序时创建(设置)或由用户通过应用程序创建(文档)。现在,当用户第一次启动应用程序时,它可以为用户提供一种管理每个用户数据的方法,以便用户可以在卸载应用程序或决定不再使用它之后进行清理。
方法可能是应用程序使用 UninstallString 创建的用户 ARP 条目,该条目运行它复制到用户的 AppData 文件夹的内容。或者,它可能是执行相同操作的用户快捷方式。或者,如果您想要用户不触发的东西,用户运行注册表项以启动一个实用程序,该实用程序检测应用程序是否已被卸载(这可能是一个挑战)。
如果应用程序是按用户安装的,那么“应用程序安装”可以删除应用程序、设置和文档,但应该只删除应用程序。
文档是用户的,但取决于应用程序,如果用户无意再次运行应用程序,则文档可能一文不值。您应该离开他们或询问。
至于设置,正如您所指出的,如果用户将来运行任何版本的应用程序,它们将很有用。应用程序应该能够升级或忽略较新或较旧版本的设置。
有关应用数据的更多视图,请参阅此其他 New Old Thing帖子。
所以,回答你的问题:
只有一起设计应用程序和安装程序才能产生最佳的用户体验。