我的項目是一個更大項目的插件。較大項目中的一個錯誤會創建一個文件,導致我的應用程序崩潰。他們已經意識到這個問題並且正在解決它,但同時唯一的解決方法是刪除每個用戶的appdata目錄中的某個文件。查找所有用戶的AppData目錄
該計劃是在安裝較小的插件時,導航到每個用戶的appdata目錄以刪除有問題的文件(如果存在)。有什麼方法可以找到每個用戶的appdata目錄。請記住這是一個安裝,所以我們將擁有管理員權限。一些我所看到的東西是用
WindowsIdentity.Impersonate(IntPtr someUser)
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
那麼這純粹是莫名其妙得到IntPtr的,這我不能確定如何獲得的問題。
這是我現在最好的解決方案。那麼如何獲得每個用戶的IntPtr?還是有更好的解決方案?
我能想到的下一個最好的辦法就是遍歷C:\Users\eachUser\AppData\
的所有目錄並刪除存在的文件。但是,再次,在XP中,該位置必須是C:\Documents and Settings\eachUser\Application Data\
,我將創建特定於操作系統的代碼。建議?
我們的插件從較大的應用程序運行,並且即使運行我們的代碼之前,較大的應用程序也會崩潰。它崩潰,因爲它不指望我們的插件在那裏,我們正在刪除的文件是列出插件的文件,迫使它重新創建插件列表。 – SaulBack
然後,我想我的Edit2是你最好的選擇。 –
我擔心我不得不做一個醜陋的一輪這樣做。不過,感謝您的幫助。 – SaulBack