【发布时间】:2020-10-04 20:30:53
【问题描述】:
我想在本地存储千兆字节的媒体 - 并在卸载应用程序时自动删除它们。我找到了this question,但它需要 qt 库,并且只存储应用程序设置。
我猜在 Windows、Mac 和 Linux 上都有一个惯例。是否有任何std 帮助程序 - 或类似的 - 用于存储应用程序数据,跨平台。
如果没有,我需要在每个平台上存储这些路径是否有约定?我计划为每个操作系统创建一个安装程序,因此了解这些路径会很有用,这样我就可以在此处安装其他数据。
【问题讨论】:
-
不,C++ 库中没有这方面的内容。
-
Linux 更复杂。你有不同的包管理器,比如 rpm、dnf、yum、apt、dpkg、pacman、yast、apm 等等。此外还有跨 Linux 包管理器,如 snap、flatpak 和 appimage。即使有Filesystem Hierarchy Standard,不同发行版上的文件夹结构也可能不同
-
您有两个跨平台问题:(1) 确定存储大量应用程序数据的正确位置,以及 (2) 如何挂钩卸载过程以清理它。这两个都是系统特定的。像 Qt 这样的框架已经完成了为每个系统找出正确答案的工作,并在您调用它们的通用接口时这样做。 Qt 也有一个安装程序系统,CMake 的 CPack 也可能有帮助,但我没有针对您的特定用例尝试过它们。因此,您可以采用一些帮助解决此类问题的助手,也可以自己动手,这在任何地方都很难测试。
标签: c++ installation operating-system cross-platform