私は下のファイルで私のプログラムデータを保存しています.NET 3.5ファイルリダイレクト
とC#を使用しています:C:\プログラムデータ\ MyProgramName \ファイル名.xmlを
私のアプリケーションを一度インストールして実行したあと、アンインストール中に「プログラムデータ」からすべてのファイルを削除しています) を実行して、アプリケーションを再インストールして実行しました。
私のアプリケーションは、プログラムデータ内のファイルが存在しているかのように起動したということです。つまり、データファイルが削除されたにもかかわらず古いデータがアプリケーションに残っていました。
ランニング:
File.Exists("C:\Program Data\MyProgramName\fileName.xml")
を私は、ファイルが存在しないことを確かに知っていたにも関わらず、「真」です。
私は管理者としてアプリケーションを実行した後、ファイルが存在しなかったことが見知らぬものになりました。
調査の結果、「C:\ Program Data \ MyProgramName \ fileName.xml」を取得するのではなく、管理者権限なしでアプリケーションを実行すると、「C:\ Users \ userName \ AppData \ Local \ VirtualStore \ ProgramData \ MyProgramName \ fileName.xml "
実際、以前のインストールのファイルがありました(削除されていなかったため、存在していなかったため)。
明らかに、プログラムデータの下にファイルへの仮想パスがあります。
EDIT:
私は仮想店舗で古いファイルを削除した後、私のアプリケーションが突然正しいファイルを見つけることができていることが分かりました。 。(私はプログラムデータの下にファイルに変更を加えなかった
私の質問は:
- は、なぜそれが起こるのである
- 私は
を起こってからそれを防ぐにはどうすればよいです。事前にお礼します
はい。私は....すべてのユーザーの間にshaerdする必要があります。私はEnvironment.SpecialFolder.ApplicationDataを使用して正しいパスを取得しています – user844541
@ user844541 - 私の編集を確認してください。私はそれがこれと何か関係があるのだろうかと思います。まずは – AKX
- ありがとう!実際には、プログラムデータの下に複数のファイルがありますが、それはリダイレクトされる唯一のファイルです。あなたの推測について - それは合理的だと思う、あなたはそれが起こるための正当な理由を指摘..私はいくつかのより多くの研究を行うだろう..ありがとう/ – user844541