【问题标题】:Best Practice User Files and Folders in AppDataAppData 中的最佳实践用户文件和文件夹
【发布时间】:2018-02-21 18:07:44
【问题描述】:

我正在编写一个应将用户特定数据保存到 AppData 中的应用程序。这个应用程序有一个安装程序。现在我不确定,在 AppData 中提供文件夹的最佳方式是什么。

安装程序应该创建(和删除)文件夹,还是应用程序自己创建(但可能永远不会删除)文件夹。

此外,如果同一台计算机上的多个用户使用该应用程序,则如果其他用户安装了该应用程序,则文件夹可能不存在。

我没有找到任何能真正向我解释这一点的东西。

提前致谢。

【问题讨论】:

    标签: installation appdata


    【解决方案1】:

    我会回答 Windows Installer、MSI 文件,基本上你不需要在安装程序中担心它;只需将文件安装到所需位置,该文​​件夹将自动创建并在卸载时删除,如果它是空的。

    【讨论】:

      【解决方案2】:

      除了菲尔的正确答案:

      如果应用程序使用的 AppData 文件夹中的文件仅由应用程序创建,则在运行时无需配置安装程序来创建空文件夹。这些文件夹将在您的应用写下文件的那一刻创建。

      此外,即使您的安装程序正在创建该文件夹,卸载时如果该文件夹中有应用程序创建的文件,它也不会删除。 Windows Installer 会跟踪(应该在正确配置的包中进行)它安装的每个文件,并且只删除它安装的文件(默认情况下,它可以配置为强制删除文件夹和没有安装的文件)。

      关于应用程序的其他用户。在这种情况下,最简单的方法是使用您的应用程序在 AppData 文件夹中为每个用户首​​次启动应用程序时创建初始默认文件。

      如果您需要从安装程序将文件安装到 AppData,那么您可以尝试one of the following approaches。这些技术可以与任何可以创建 MSI 包的设置创作工具一起应用。

      【讨论】:

      • 就是这样,我的应用程序自动创建的大部分文件都应该在卸载时删除。创建的每个持久文件都是使用“另存为”对话框创建的。我认为自我修复功能似乎是一个解决方案。但是卸载呢,卸载时是否会删除文件夹,即使它们是为多个用户创建的?
      • 谢谢,信息量很大,但遗憾的是也没有提供答案;)
      • 如果您坚持删除所有用户配置文件下的文件,类似的主题可能会对您有所帮助:advancedinstaller.com/forums/viewtopic.php?t=20542#p55766
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-18
      • 2012-12-15
      • 2015-02-08
      • 1970-01-01
      • 2013-05-04
      • 2022-01-07
      相关资源
      最近更新 更多