代码之家  ›  专栏  ›  技术社区  ›  Dave Mateer

Linux和Mac OS X的共享数据位置

  •  6
  • Dave Mateer  · 技术社区  · 15 年前

    在Windows上,有一个与计算机上所有用户共享的应用程序数据的标准位置(即在Vista/7中, (root):\ProgramData

    • Qt是否提供了一个内置的方法来实现这一点( QDesktopServices
    • 如果没有,Linux和Mac OS X系统上共享应用程序数据的标准位置是什么?是 /usr/share 正确的地方?有什么标准吗?

    这是针对可变数据的。

    3 回复  |  直到 15 年前
        1
  •  7
  •   Yuji    15 年前

    我不知道Qt是否为此提供了API。以下是OSX特定的信息。

      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 更多信息。

        2
  •  2
  •   Mihai Limbășan    15 年前

    这个 File System Hierarchy Standard 建议 /usr/share 应用于 read-only architecture independent data files ,和 /var/lib state information pertaining to an application or the system .

    您没有指定是指只读状态还是可变状态,而是指定了问题的措辞(特别是与 %COMMONAPPDATA% )表示可变状态,在这种情况下

        3
  •  2
  •   Finn    15 年前

    在macos上,一种解决方案是使用/Users/Shared目录,因为它对所有用户都是读/写的,因此对每个人都是可变的。必须确保你在那里创建的任何文件对每个人都是读/写的。

    或者你也可以按照别人的建议使用应用程序支持,让你需要的任何文件都可以为每个人读/写,但这意味着管理员需要先创建它们,要么通过安装程序,要么先运行,这有点难看。

    我的公司使用Users/Shared正是为了这个目的,但我不知道它有多“整洁”。