我使用C#和.NET 3.5文件重定向
我節省下的文件我的程序數據:C:\程序數據\ MyProgramName \ filename.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「
確實有一個文件存在於以前的安裝中(我明顯沒有刪除,因爲我不知道它存在)。
因此,顯然在程序數據下有一些虛擬路徑。
編輯:
我發現,刪除舊文件中的虛擬商店後,我的應用程序突然能夠找到正確的文件。 (我沒有在計劃文件中的數據所做的任何更改
我的問題是:。
- 爲什麼會發生
- 我怎樣才能防止它發生
在此先感謝
是的。我必須......它應該在所有用戶之間分享。我正在使用Environment.SpecialFolder.ApplicationData獲取正確的路徑 – user844541 2012-04-03 15:55:00
@ user844541 - 檢查我的編輯。我想知道這是否與此有關。首先 - – AKX 2012-04-03 16:07:05
- 謝謝!事實是我在程序數據下有多個文件,但這是唯一被重定向的文件。關於你的猜測 - 這聽起來很合理,你指出了一個很好的理由,我會做更多的研究..非常感謝/ – user844541 2012-04-03 18:30:22