6

Windowsには、マシン上のすべてのユーザーと共通に共有されるアプリケーションデータの標準的な場所があります(つまり、Vista / 7の場合(root):\ProgramData)。Qtを使用して他のプラットフォームでそのようなフォルダを取得する方法を探しています。

  • Qtはこれを行うための組み込みメソッドを提供しますか?(QDesktopServicesは有望に見えましたが、このオプションを提供していないようです。)
  • そうでない場合、共有アプリケーションデータのLinuxおよびMac OS Xシステムの標準的な場所は何ですか?/usr/share正しい場所ですか?基準はありますか?

【説明】可変データ用です。

4

3 に答える 3

7

QtがそのためのAPIを提供しているかどうかはわかりません。OSX固有の情報は次のとおりです。

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/

詳細については、このAppleガイドラインを参照してください。

于 2010-08-13T22:37:24.397 に答える
2

Mac OSでは、1つの解決策は、/ Users / Sharedディレクトリを使用することです。これは、すべてのユーザーに対して読み取り/書き込みが可能であり、したがって、すべてのユーザーに対して変更可能であるためです。そこで作成するファイルは、すべての人が読み取り/書き込みできることを確認する必要があります。

または、他の人が提案したアプリサポートを使用して、すべての人が変更可能な読み取り/書き込みが必要なファイルを作成することもできますが、これは、管理者がインストーラーまたは最初の実行のいずれかを使用して最初にファイルを作成する必要があることを意味します。これは少し醜いです。 。

私の会社はまさにこの目的のためにUsers/Sharedを使用していますが、それがどのように「きちんとした」と見なされているのかわかりません。

于 2010-09-11T09:37:21.100 に答える
2

File System Hierarchy Standardは、読み取り専用のアーキテクチャに依存しないデータファイルに使用する必要があり、アプリケーションまたはシステムに関連する状態情報に使用する必要があること/usr/shareを示しています。/var/lib

読み取り専用状態と可変状態のどちらを参照しているかを指定しませんでしたが、質問の文言(具体的にはとの比較%COMMONAPPDATA%)は可変状態を示唆しており、その場合/var/libは適切です。サブディレクトリへの書き込み権限を持つユーザーグループを利用可能にする(またはパッケージインストールスクリプトによって作成する)ことを忘れないでください。また、sysadminに適切なユーザーをそのグループに追加してもらいます。

于 2010-08-13T21:11:16.120 に答える