IT技(ji)術互動(dong)交流平台

美娱彩票官网

作者(zhe)︰樓上那個蜀(shu)黍(shu)  來源︰IT165收集(ji)  發布日期︰2020-02-25 23:41:15

  前(qian)一篇(pian)漲姿勢UWP源碼分析從數據源著手,解釋了RSS feed的獲取(qu)和(he)解析,本篇(pian)則會就數據源的保(bao)存和(he)讀取(qu)進(jin)行舉例。

  和(he)之(zhi)前(qian)的Windows Runtime一樣(yang),UWP采(cai)用IsolatedStorage的方(fang)式(shi)來存儲(chu)APP的私jie)惺藎 庋yang)做到APP之(zhi)間互不干(gan)擾,減少了錯誤及安全隱患。現在的Application的設計似乎都(du)流行這個做法。

  UWP中對應(ying)用程序數據存儲(chu)區的訪問(wen),通(tong)常使用ApplicationData這個類來操作,我們qian)炎zui)常用的一些屬性列出︰

屬性和(he)方(fang)法

用途

public StorageFolder LocalFolder { get; }

獲取(qu)本地應(ying)用程序數據存儲(chu)區中的根文件夾。

public ApplicationDataContainer LocalSettings { get; }

獲取(qu)本地應(ying)用程序數據存儲(chu)區中的應(ying)用程序設置容器。

public StorageFolder RoamingFolder { get; }

獲取(qu)漫游應(ying)用程序數據存儲(chu)區中的根文件夾。

public ApplicationDataContainer RoamingSettings { get; }

獲取(qu)漫游應(ying)用程序數據存儲(chu)區中的應(ying)用程序設置容器。

public IAsyncAction ClearAsync();

刪除本地、漫游以及臨(lin)時應(ying)用程序數據存儲(chu)區中的所有(you)應(ying)用程序數據。

  具體在漲姿勢UWP中,首先通(tong)過ApplicationData.Current.LocalFolder拿到當前(qian)APP對應(ying)存儲(chu)空間的根文件夾,然後通(tong)過StorageFolder對象進(jin)行CreateFile操作,注意(yi)這里選擇了CreationCollisionOption.ReplaceExisting這個枚舉,期望每次都(du)能夠(gou)用新的RSS feed文件覆蓋已有(you)的文件。

  接(jie)下來需要(yao)先將需要(yao)保(bao)存的字符串內(na)容轉(zhuan)換成(cheng)已編碼的buffer對象,再通(tong)過FileIO.WriteBufferAsync方(fang)法寫入之(zhi)前(qian)創建好的文件中。當然你(ni)直接(jie)FileIO.WriteTextAsync也不是(shi)不可(ke)以,CryptographicBuffer主要(yao)包含Encode,Decode等編碼相關的方(fang)法,可(ke)用于加密操作。

 public async Task<bool> SaveRssFileAsync(string content) {  bool isWriteSuccess = true;  try  {  StorageFolder storageFolder = ApplicationData.Current.LocalFolder;  StorageFile rssFile = await storageFolder.CreateFileAsync(RssFileName, CreationCollisionOption.ReplaceExisting);  var buffer = CryptographicBuffer.ConvertStringToBinary(content, BinaryStringEncoding.Utf8);  await FileIO.WriteBufferAsync(rssFile, buffer);  }  catch (Exception)  {  isWriteSuccess = false;  }  return isWriteSuccess; }

  UWP文件存儲(chu)相關的類,除了上述提到的Windows.Storage命名(ming)空間下最(zui)常用的StorageFolder、StorageFile和(he)FileIO,還(huai)有(you)Windows.Storage.Pickers命名(ming)空間下的各類Picker,Windows.Storage.Streams命名(ming)空間下的各種buffer,steam,熟悉之(zhi)後用起來還(huai)是(shi)很方(fang)便的。

  接(jie)著我們qiang)純炊寥qu)文件內(na)容的操作,同(tong)樣(yang)是(shi)找(zhao)到LocalFolder,然後根據文件名(ming)去讀取(qu)StorageFile,如果StorageFile不為空,就通(tong)過ReadTextAsync方(fang)法來獲取(qu)存儲(chu)的文本內(na)容。

 public async Task<string> ReadRssFileAsync() {  string content = string.Empty;  StorageFolder storageFolder = ApplicationData.Current.LocalFolder;  StorageFile rssFile = await storageFolder.TryGetItemAsync(RssFileName) as StorageFile;  if (rssFile != null)  {  content = await FileIO.ReadTextAsync(rssFile);  }  return content; }

  文件的保(bao)存和(he)讀取(qu)大致(zhi)就是(shi)以上這些,是(shi)不是(shi)比想象的簡單多(duo)了。上周漲姿勢UWP更(geng)新了一版,修復了一些不可(ke)告(gao)人的小bug,優化(hua)(或(huo)丑化(hua))了部分界(jie)面,歡迎(ying)來漲姿勢。

  GitHub源代碼地址︰

https://github.com/manupstairs/ZhangZiShiRSSRead

  Windows Store︰

https://www.microsoft.com/zh-cn/store/p/%e6%b6%a8%e5%a7%bf%e5%8a%bfuwp/9nblggh3zqd1

Tag標(biao)簽︰源碼  姿勢  
  • 美娱彩票官网

About IT165 - 廣(guang)告(gao)服務(wu) - 购彩APP下载官网隱私聲(sheng)明 - 版權申明 - 免責條款 - 網(wang)站地圖 - 網(wang)友投稿(gao) - 聯系(xi)方(fang)式(shi)
本站內(na)容來自于互聯網(wang),僅(jin)供用于網(wang)絡技(ji)術學習,學習中請遵循相關法律(lv)法規
美娱彩票官网 | 下一页