我想在本地存储千兆字节的媒体--并且在卸载应用程序时让它们自动删除。 我发现了这个问题,但它需要qt库,而且只存储app设置。
我猜Windows,Mac和Linux都遵循着一个惯例。 是否有任何std
助手-或类似的-用于存储应用程序数据,跨平台。
如果没有,在每个平台上,我需要存储这些信息的路径是否有一个约定? 我计划为每个操作系统创建一个安装程序,所以知道这些路径会很有用,这样我就可以在这里安装我的其他数据。
我想在本地存储千兆字节的媒体--并且在卸载应用程序时让它们自动删除。
普通但熟练的用户能够将介质复制到其他地方,并定期备份磁盘。
但是,大多数C++程序都有一个接受程序参数的main
,您可以常规地提供程序参数来删除数据。 请确保正确记录您的设计。
看这个答案。 在Unix或POSIX系统(Linux,MacOSX,FreeBSD.。。。)上,您可能接受--clean-all-the-muss
程序选项。
我猜Windows,Mac和Linux都遵循着一个惯例。
据我所知,这个猜测是错误的。
更一般地,阅读有关包管理器的内容。 他们有很多。 请参见guix以获得一个有趣的示例。 Debian和Fedora有不同的。 研究GNU stow和autoconf。
您可能需要使用数据库,可能是SQLite或PostgreSQL。
在Linux上,请参见Advanced Linux Programming then syscalls(2)以及有关systemd的更多信息。
在Windows上,阅读有关WinAPI的内容。
是否有存储这些路径的约定
Linux有hier(7),但是一些Linux发行版(包括Android)没有遵循这一标准。
我的推荐:研究一些接近你目标的开源软件的C++代码。 你可以在github,gitlab或SoftwareHeritage上找到其中的一些。 另见POCO。
“Application Uninstall”事件对操作系统是可见的,因此您最好找到一些特定于操作系统的钩子来注册回调,以便自己删除本地文件。
编辑:C++STL是一段代码(库),用于编写运行在某些OS之上的应用程序,因此STL不是查找应用程序安装/卸载事件的地方,这些事件是OS级别的事件。 但是没有什么可以阻止您为任何操作系统编写卸载程序应用程序。 问题是由谁执行,如何执行,何时执行。