2 回答

TA貢獻1802條經(jīng)驗 獲得超6個贊
這不是一個“問題”,而是一個功能。這稱為用戶帳戶控制(UAC),它是Windows Vista下加強系統(tǒng)安全性的方法之一。Windows 7確實保留了類似的安全模型。
完全沒有理由,您的應(yīng)用程序首先不需要與系統(tǒng)文件夾混淆。如您所知,Windows為應(yīng)用程序提供了許多臨時和永久存儲數(shù)據(jù)的位置。長期以來,Microsoft一直建議您利用這些文件夾:即使在以前的Windows版本下,它們也是存儲數(shù)據(jù)的首選位置。您忽略了此建議,但您的應(yīng)用程序仍可以繼續(xù)工作的事實實際上是一個錯誤。Windows的更高版本最終關(guān)閉了該安全漏洞,從而破壞了您的應(yīng)用程序,這一事實既不應(yīng)是意外的,也不應(yīng)該被人們所理解。
您可以在此頁面上找到有關(guān)將數(shù)據(jù)存儲在何處的更多信息。另請參閱此博客文章,該文章試圖將一系列技術(shù)文檔匯總到一個方便的表格中。與往常一樣,Raymond Chen提供了有關(guān)位置之間差異的簡單但有啟發(fā)性的概述:
我的文檔和應(yīng)用程序數(shù)據(jù)之間最重要的區(qū)別在于,我的文檔是用戶存儲文件的位置,而應(yīng)用程序數(shù)據(jù)是程序存儲文件的位置。
換句話說,如果您在CSIDL_MYDOCUMENTS(我的文檔)中放置了某些內(nèi)容,則應(yīng)該期望用戶對其進行重命名,移動,刪除,將其通過電子郵件發(fā)送給他們的朋友,這些都是用戶對其文件進行的所有操作。因此,轉(zhuǎn)到那里的文件應(yīng)該是用戶會識別為“他們的東西”的東西。他們創(chuàng)建的文檔,下載的音樂等等。
另一方面,如果您將某些內(nèi)容放入CSIDL_APPDATA(應(yīng)用程序數(shù)據(jù))中,則用戶不太可能將其弄亂。在這里,您可以放置程序的支持數(shù)據(jù),這些數(shù)據(jù)實際上并不是您希望用戶弄亂的東西,但仍應(yīng)與用戶相關(guān)聯(lián)。高分表,程序設(shè)置,自定義,拼寫檢查異常...
還有一個名為CSIDL_LOCAL_APPDATA(Local Settings \ Application Data)的目錄,其作用類似于CSIDL_APPDATA,但是如果用戶配置文件漫游,該目錄不會被復(fù)制。(“本地設(shè)置”分支不會作為漫游用戶配置文件的一部分進行復(fù)制。)可以將其視為每個用戶每個計算機的存儲位置。緩存和類似的非必要數(shù)據(jù)應(yīng)保存在此處,特別是如果它們很大。非漫游每用戶數(shù)據(jù)的其他示例是您的%TEMP%目錄和Internet臨時目錄。

TA貢獻1810條經(jīng)驗 獲得超4個贊
一個非常普遍的新手誤解是,程序設(shè)置可以保存在與可執(zhí)行文件相同目錄下的文本文件(例如INI文件)中。從概念上講這是錯誤的。一方面,這將使按用戶設(shè)置成為不可能!但是由于Windows Vista的“虛擬存儲”兼容性功能,行為不端的程序仍可以在Vista上運行,此外,它們開始有效地采用每個用戶的設(shè)置。這對Microsoft來說是+1(對于抱怨它的人來說是-1?。?。
- 2 回答
- 0 關(guān)注
- 559 瀏覽
添加回答
舉報