4

こんにちは私はログファイルを作成/書き込むアプリケーションを持っています(後でErrorLogを書き込みます)が、ユーザーが私のアプリがあるフォルダにファイルを作成する権利を持っていない場合、現時点ではアクセス許可の問題に固執していますそれは例外を投げます

今私の質問は、このアプリの作成と書き込みの権利を(ユーザーから)独立させるにはどうすればよいですか?

私はこれを読みましたが、クライアントがその権限を与えることができないため(それらは許可されていません)、役に立ちませんが、私のアプリにはその権利が必要です

あなたの助けは高く評価されます

4

1 に答える 1

4

プログラムのバイナリをそのデータから分離することは、一般的な概念です (ベスト プラクティスとさえ言えます)。

たとえば、すべての Windows アプリは の下にありますが、それらのデータは、個人データ用または共有データ用Program filesのユーザーの下に書き込みます。プログラムに非常に具体的な要件がない限り、このガイドラインに従う必要があります。%APPDATA%%ProgramData%

データの種類によっては、特にユーザーにデータをすばやく見つけてもらいたい場合は、ユーザーのドキュメント フォルダーの下にサブフォルダーを作成することもできます。

C# を使用すると、 Environment.GetFolderPath Methodを使用して、この特別なフォルダーを簡単に見つけることができます。例えば:

public string GetDataFolder()
{
    var appDataPath = Environment.GetFolderPath(
        Environment.SpecialFolder.ApplicationData, // Search under %APPDATA%
        Environment.SpecialFolderOption.Create // Create the folder if it does not exists
    );
    var dataFolder = Path.Combine(
        appDataPath,
        "MyApplication"
    );
    return dataFolder;
}

Environment.SpecialFolderOption Enumerationを見ると、一般的な場所のほとんどが簡単に見つかることがわかります。

データがすべてのユーザーによって共有されると述べたように、を%ProgramData%使用して検出される を具体的にターゲットにする必要がありEnvironment.SpecialFolder.CommonApplicationDataます。

すべてのユーザーが使用するアプリケーション固有のデータの共通リポジトリとして機能するディレクトリ。

最終的に、このフォルダは (デフォルト設定で) として解決されますC:\Programdata\MyApplication

于 2012-11-26T08:50:58.400 に答える