在 Windows 上,应用程序数据有一个标准位置,该位置与机器上的所有用户共享(即在 Vista/7 中,(root):\ProgramData
)。我正在寻找一种使用 Qt 在其他平台上获取此类文件夹的方法。
- Qt 是否提供内置方法来执行此操作? (QDesktopServices 看起来很有希望,但似乎没有提供此选项。)
- 如果不是,Linux 和 Mac OS X 系统上共享应用程序数据的标准位置是什么?
/usr/share
是正确的地方吗?有标准吗?
[澄清]这是针对可变数据的。
最佳答案
我不知道 Qt 是否为此提供了 API。这是 OS X 的特定信息。
在 OS X 上,这取决于它是 GUI 应用程序还是 unix 级别的支持库。对于 GUI 应用程序,标准做法是让所有用户在应用程序包本身内共享所有只读数据。通常你有
YourApp.app/
YourApp.app/Contents
YourApp.app/Contents/MacOS
YourApp.app/Contents/MacOS/YouApp .... this is the binary
YourApp.app/Contents/Resources/ .... here are all the shared data
GUI 将目录 YourApp.app
呈现为应用程序本身,因此您可以毫无问题地复制/移动它。
如果不行,建议使用
/Library/Application Support/name_of_your_app/
用于用户之间共享的数据。
在一台机器上的用户之间拥有可变的、共享的数据是个坏主意;一般来说,由于访问限制,这是不可能的。请注意,标准用户可能没有,实际上通常没有写入共享位置的管理权限。
对于特定于用户的可变数据,使用
~/Library/Application Support/name_of_your_app/
参见 this Apple guideline了解更多信息。
关于linux - Linux 和 Mac OS X 的共享数据位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3480399/