2

こんなことを言っているなんて信じられませんが、自分のプログラムを OSX に移植してパーミッションに慣れてきたので、Windows で計画していたことが思い通りに動かないことに気付きました。現在、Windowsでは、私のプログラムは設定をレジストリ(HKLM)に保存し、ユーザーが編集可能なリソースをプログラムファイルの隣のフォルダーに保存します。さまざまな理由から、構成/設定をファイルに保存し、ユーザーが他のリソースを保持するフォルダーを指定できるようにすることにしました。

ここで問題になるのは、構成ファイルをどこに保存するかということです。明らかに更新されますが、実行するために管理者権限を必要とするようにプログラムしたくありません。すべてのユーザーがプログラムを使用できるようにオプションを提供したいと思います (ほとんどのプログラムが行うように)。これにはもちろん管理者が必要です。したがって、これは 2 番目のクエリにつながります: 構成ファイル (およびフォルダーどの他のリソースが保持されているか)、プログラムがすべてのユーザーにインストールされているか、1 人だけにインストールされているかをどのように検出できますか!

前もって感謝します

PSあなたが推測していない場合、プログラムはJavaで書かれているので、あなたが提案した場所をプログラムで取得する方法も知りたいです.

4

2 に答える 2

4

*nix 互換プログラムでは、 name で始まるフォルダーに情報を保存するのが通常の方法です。ユーザーのホームディレクトリで、

.bash_history
.bashrc

私の意見では、OSXでも同じことを使用して、次のようなディレクトリを作成できます。

.myapp

そのディレクトリの下に、任意の形式の任意の数のファイルを保存できます。

フォルダの場所を取得するには、次のことができます

String homeDir = System.getProperty("user.home");
File myAppDir = new File(homeDir, ".myapp");

これは、アプリのカスタム構成ディレクトリを取得できる大まかなコードです。

ドット ファイル/フォルダは、Windows の隠しフォルダに多少似ていることに注意してください。通常、ファイル マネージャーは、デフォルトではこれらのファイル/フォルダーを表示しません。

プログラムがすべてのユーザーにインストールされているかどうかを確認するには、管理者 (ルート) が制御する /etc などの場所に構成を作成できます (Mac については不明)。ユーザー構成は常にデフォルトの構成をオーバーライドできます。ただし、これを処理するより良い方法があるかもしれません。

于 2012-04-21T12:10:26.873 に答える
1

Windows と UNIX の両方で、ユーザー (通常) には、完全なアクセス許可を持つ (ホーム) フォルダーがあります。ホーム フォルダにディレクトリを作成し、そこにユーザー構成ファイルを配置することができます。

于 2012-04-21T12:17:48.283 に答える