0

私はアプリに取り組んでおり、アプリのメイン フォルダーには、サイトのリストを含むテキスト ファイルがあります。
ファイルの操作に問題があります。

アプリで彼の内部に情報を含むテキストファイルを送信し、アプリでユーザーがコンテンツを変更できる場所を提供したいと考えています。保存して変更を表示します。

私の質問は次のとおりです。

  1. そのようなファイルをどこに配置すればよいですか?

  2. アプリケーションから取得する最良の方法は何ですか?

  3. ファイルをファイル フォルダーに配置すると、Visual Studio からアプリを実行しているときに取得できるのに、アプリを解放してインストールすると、アプリがファイルを見つけられず、ファイルを作成する必要があるのはなぜですか (そしてデータが失われます) )?

4

2 に答える 2

2

正しい場所を見つける適切な方法は、Environment.GetFolderPathを使用してから、SpecialFolder.LocalApplicationData.

ただし、ユーザー データの場所には微妙な違いがたくさんあるため、SpecialFolder 列挙型のドキュメントを参照する必要があります。

インストーラー ツールには、おそらく同じ「特別な場所」を見つける機能があるため、ファイルが期待する場所にあることを期待できます。もちろん、あるユーザーがインストーラーを実行し、別のユーザーがアプリを使用する場合、これは役に立たないかもしれませんが、単純な状況では問題ないかもしれません.

試して明確にするには

ここには 2 つの問題があります。

  1. インストーラーはファイルをどこに置くべきですか?
  2. インストーラーがファイルを配置したときに、アプリケーションはどのようにファイルを見つけますか?

これらは両方とも、さまざまな「特別なフォルダー」を定義する Windows によって解決されます。これらがどこにあるかを正確に気にする必要はありませんが、必要なときにそれらを見つける方法があります。

問題 '1' を解決するには、インストーラーのドキュメントを見て、特別なフォルダーをどのように処理するかを調べる必要があります。ほとんどの場合、ファイルの宛先を特別なフォルダーに設定するマクロまたは同様のメカニズムがあります。問題 '2' を解決するには、Environment.GetFolderPath() を使用する必要があります。

于 2012-10-19T14:29:43.250 に答える
0

ファイルが 1 人のユーザーに固有のものである場合は、そのファイルを Application Data ディレクトリに読み書きする必要があります。

string folderPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);

ファイルがすべてのユーザー間で共有されている場合は、Shared Application Data ディレクトリを使用します。

string folderPath = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);
于 2012-10-19T14:33:14.703 に答える