【问题标题】:The best place to store app's data存储应用数据的最佳位置
【发布时间】:2013-06-02 18:38:31
【问题描述】:

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

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

【问题讨论】:

    标签: wix installation appdata


    【解决方案1】:

    这里需要考虑三件事:

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

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

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

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

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

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

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

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

    查看其他新旧事物post 以获取有关应用数据的更多视图。


    所以,回答你的问题:

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

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

    【讨论】:

      猜你喜欢
      • 2014-01-05
      • 2014-11-20
      • 2019-03-09
      • 2012-08-05
      • 1970-01-01
      • 2011-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多