UWP 的應用程序存儲區有什麼區別?

看了下 Win10(8/8.1的應該也一樣)的相關 API,應用程序存儲區有好多啊:

  • Windows.ApplicationModel.Package.Current.InstalledLocation

  • ApplicationData.Current.LocalFolder

  • ApplicationData.Current.RoamingFolder

  • ApplicationData.Current.TemporaryFolder

  • ApplicationData.Current.LocalCacheFolder

  • ApplicationData.Current.SharedLocalFolder

這裡我有很多疑惑:

①InstalledLocation 沒啥可解釋的,應用的安裝根目錄而已。

②LocalFolder 也知道,但適合放什麼數據?給個具體的例子唄

③RoamingFolder 理解,比如新聞應用,用戶的收藏列表就放在這了,如果有賬號就可以實現同步列表!

④TemporaryFolder 和 LocalCacheFolder 有什麼區別?

看文檔介紹:「臨時應用數據存儲(TemporaryFolder )類似於緩存。它的文件不會漫遊,隨時可以刪除。系統維護任務可以隨時自動刪除存儲在此位置的數據。用戶還可以使用「磁碟清理」清除臨時數據存儲中的文件。臨時應用數據可用於存儲應用會話期間的臨時信息。無法保證超出應用會話結束時間後仍將保留此數據,因為如有需要,系統可能回收已使用的空間。」

意思是說 TemporaryFolder 只是一個非常臨時性的文件夾,退出應用程序就有可能被刪除了?這樣的話,如果做一個新聞閱讀應用,(如果我想下次再離線情況下也能載入顯示之前看過的內容)新聞列表/內容的緩存應該放在 LocalCacheFolder 而不是 TemporaryFolder 中了?

②SharedLocalFolder 是什麼鬼?

下圖是上述文件夾的實際面目(貌似沒有 SharedLocalFolder):


LocalFolder

是備份的,共用的,適合放遊戲存檔,會自動備份,在重新安裝的時候可還原。

RoamingFolder

跨設備漫遊,會在多設備之間同步,適合放用戶設置習慣。

TemporaryFolder

緩存文件夾,空間由系統管理,在不足的時候自動釋放,適合放緩存文件,比如題主所說的新聞內容。

LocalCacheFolder

獨立應用文件夾,是不備份的,私密的,適合放私密數據,比如遊戲數據包。

參考:

Windows Phone 8.1 – LocalCacheFolder

Windows Phone 8.1應用移植手記4:一些需要注意的地方(1)


推薦閱讀:

不在系統中"彈出"U盤就拔出U盤,是否會損壞U盤?
怎麼讓我媽媽相信把文件存在網上沒有安全問題?
內存條改造為U盤可行嗎?
如何建立一個自己的資源庫 搜索關鍵字就能找到相應資源?
求備份大量視頻文件的方案,選擇移動硬碟、台式機硬碟、還是光碟好?

TAG:C# | WindowsPhone開發 | 數據存儲技術 | UWPWindows開發 |