[英]Where to store Application Data in Windows 7 and Vista
像大多數人一樣,我的應用程序需要存儲數據。 該應用程序以前僅在XP上用於存儲Program Files
的數據。 既然我們的客戶正在轉向Windows 7,我必須升級它,以便將數據存儲在新文件夾中。 我選擇了ApplicationData
文件夾,因為我認為不需要UAC就可以訪問。
現在在一些Windows 7機器上這很好,但是在其他機器上訪問該文件夾失敗,可能是因為權限,但是當使用Administrator privelidges運行時,程序運行正常。
我使用錯誤的文件夾還是這些情況是異常值? 無論哪種情況,這種事情的最佳做法是什么?
我使用以下C# SpecialFolder
來獲取AppData文件夾位置。
System.Environment.SpecialFolder.ApplicationData
System.Environment.SpecialFolder.ApplicationData
是每用戶和漫游。 這聽起來不像你想要的。 您似乎需要機器范圍的設置,因此應使用System.Environment.SpecialFolder.CommonApplicationData
。
由於CommonApplicationData
在所有用戶之間共享,因此默認訪問控制受到限制。 默認情況下,標准用戶無法在此位置寫入。 建議的做法是在安裝時創建CommonApplicationData
的子文件夾,並為其分配適當的許可訪問控制設置。
大衛是對的。 據我所知,如果您通過ClickOnce或Installer部署您的應用程序也存在一些差異:第一個允許一些權限子集而不是普通安裝程序。 我必須承認我不是那方面的專家。
當然,即使從XP開始,Program Files也是存儲數據的最差位置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.