0

ユーザーによって定義されたさまざまなディレクトリに、多くのインスタンスとしてインストールされる ac# アプリケーションを作成しました。例えば

C:\Program Files(x86)\MyApp1
C:\Program Files(x86)\MyApp2
C:\MyApp1
C:\MyApp2
...

で、これらのインスタンスごとに 1 つずつ、別々のディレクトリにあるデータ ファイルを読み書きしたいと考えていますEnvironment.SpecialFolder.LocalApplicationData

インストールされた各実行可能ファイルから対応するディレクトリを参照するために、私のコードで使用する最善の方法は何ですか? 例えば

C:\Program Files(x86)\MyApp1\app.exe to reference unique app dir C:\Users\xxxx\AppData\Local\MyApp1\
4

3 に答える 3

1

リクエストを受け入れるにはいくつかの方法があります。ここにあなたの問題に対するいくつかの可能な解決策があります:1。

string sPath = System.Environment.GetFolderPath(     Environment.SpecialFolder.CommonApplicationData) 
       + Path.DirectorySeparatorChar + APP_NAME + Path.DirectorySeparatorChar`

ここで、APP_NAMEはアセンブリ名です。このコードは、* ... AllUsers \ Application Data \APP_NAME*フォルダーに配置されます。

  1. IsoltaedStorageを使用する

しかし、スペースの面で制限があります。

于 2011-07-08T13:47:31.067 に答える
1

パスの末尾に一意の値を追加できます: C:\Users\xxxx\AppData\Local\MyApp\ghfdsjgb23

インストールごとにそのような一意の値がない場合は、インストール パスのハッシュなどを使用できます。

于 2011-07-08T13:23:42.370 に答える
1

このデータをアプリケーションからのみ使用し、各ユーザーごとに異なるデータを利用できるようにする必要がある場合は、IsolatedStorage を確認できます。これにより、データの実際の場所から抽象化でき、データを簡単に保存/取得できます。

同じアプリケーションを異なるフォルダーに異なる名前でインストールするという事実は、少なくとも、今は理解できないことを示していますが、最終的には、次のようにすべてのインスタンスが分離して動作するように設計する必要があります。これらは本当に異なるアプリケーション (ワード、エクセル、メモ帳など) であり、パスがハードコードされていないことを意味します :)

于 2011-07-08T13:29:29.307 に答える