簡體   English   中英

在Windows 7和Vista中存儲應用程序數據的位置

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM