16

Windows、Mac、および Linux を対象とするアプリケーションをすぐに構築しています。設定などのアプリケーションデータをどこに保管すればよいか考えていました。

アプリケーションのインストール フォルダが最も簡単な選択ですが、Vista の新しいセキュリティ モデルでは問題になる可能性があると思います。さらに、ユーザーは別の設定を必要とする場合があります。

C:\Documents and Settings\username\MyApp は Vista と XP の両方に適していますか? /home/username/.MyApp は Linux と Mac に適していますか?

アイデアやベスト プラクティスへのリンクは大歓迎です。

ありがとう!

ファン

4

9 に答える 9

12

各プラットフォームには、ユーザーのホーム フォルダー、ドキュメント フォルダー、または設定フォルダーを検索するための独自の API があります。

  • Windows: SHGetFolderPath() または SHGetKnownFolderPath()
  • Mac OS X および iPhone OS: NSSearchPathForDirectoriesInDomains()
  • Unix: $HOME 環境変数

特定のパスをハードコーディングしたり、ユーザー名に接頭辞と接尾辞を追加したりしないでください。また、ファイルに名前を付けるためのプラットフォームの規則に従うようにしてください。

于 2008-09-11T16:17:35.797 に答える
5

ベスト プラクティスに関して、Jeff はユーザー スペースの汚染に関する記事を投稿しました

于 2008-09-11T16:38:41.503 に答える
4

一般的なポイントとして、設定の実装を「設定プロバイダー」に抽象化し、プラットフォームごとに異なるプロバイダーを提供することをお勧めします。これにより、ターゲット プラットフォームに最適な方法で設定の保存を実装できます (たとえば、Linux または Windows レジストリ上のファイル)。

単純に「最小公倍数」を採用しないでください。ファイルに明示的に保存する必要があるコンテンツがある場合は、設定プロバイダーにそれらのファイルのプラットフォーム固有の場所を公開してもらいます。

于 2008-09-11T17:34:04.677 に答える
2

私は違います:)

Windows では USERPROFILE を、Mac/Linux では HOME を使用しています。それでも、私はそれらが適切な場所であることを知る必要があります.

ありがとう!

于 2008-09-11T16:19:04.810 に答える
2

Windows では、ユーザー プロファイルだけでなく、別のレベルに進む必要があります。Application Data フォルダーを使用します。

于 2008-09-11T16:21:11.763 に答える
2

Windows では APPDATA を使用し、Linux では HOME を使用します。

于 2008-09-11T16:24:42.927 に答える
2

Linux/BSD/Solaris の場合: http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html

于 2008-09-11T19:35:16.400 に答える
1

ユーザーデータをアプリケーションフォルダーに保存しないでください。それはただの悪い考えです。

ほとんどのオペレーティング システムには、$HOME (または %HOME%) 環境変数があります。それは最初に見る場所でしょう。

ただし、複数のオペレーティング システムをきれいにサポートしたい場合は、必要な場所を正確に把握するために、それぞれに OS 固有のコードを用意する必要があります。(Mac OS の場合は ~/Library、GNOME ベースのシステムの場合は ~/.config、Windows の場合は %HOME%/Application Data など)。

于 2008-09-11T16:21:47.537 に答える
1

どの言語を使用する予定ですか? たとえば、Java には専用のPreference APIがあります。

于 2008-12-14T23:39:02.990 に答える