程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> Windows 8風格應用開發入門 二十六 本地應用數據

Windows 8風格應用開發入門 二十六 本地應用數據

編輯:關於.NET

當應用安裝時,系統會為設置和文件等應用數據提供它自己的每用戶數據存儲。我們不需要知道這 些數據存在哪裡或如何存儲,因為系統會負責管理物理存儲工作。我們只需使用應用數據API就可以了 。

本地應用數據一般用於當前設備數據的持久化,並且本地數據沒有限制大小,通常情況使用 本地數據存儲大型數據集。

如何獲取應用的設置和文件容器

1.使用 ApplicationData.LocalSettings屬性可以獲取ApplicationDataContainer 對象中的設置。

Windows.Storage.ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;

2.使用 ApplicationData.LocalFolder 屬性可以獲取StorageFolder 對象中的文件。

Windows.Storage.ApplicationDataContainer localFolder = Windows.Storage.ApplicationData.Current.LocalFolder;

如何將數據寫入設置

我們可 以通過三種方式將數據寫入設置。

1.使用ApplicationDataContainer.Values屬性。

localSettings.Values["exampleSetting"] = "Hello Windows";

使用鍵-值對的方式。

2.使用ApplicationDataCompositeValue對象,進 行一個復合的設置。

Windows.Storage.ApplicationDataCompositeValue composite = new 

Windows.Storage.ApplicationDataCompositeValue();   
       
composite["intVal"] = 1;   
       
composite["strVal"] = "string";   
       
        
       
localSettings.Values["exampleCompositeSetting"] = composite;

3.使用 ApplicationDataContainer.CreateContainer方法創建設置容器,將數據添加到容器中。

Windows.Storage.ApplicationDataContainer container =    
       
   localSettings.CreateContainer("exampleContainer", 

Windows.Storage.ApplicationDataCreateDisposition.Always);   
       
        
       
if (localSettings.Containers.ContainsKey("exampleContainer"))   
       
{   
       
   localSettings.Containers["exampleContainer"].Values["exampleSetting"] = "Hello 

Windows";   
       
}

其中Windows.Storage.ApplicationDataCreateDisposition的枚舉值Always表示該容器不存 在的話進行創建。
如何從設置中獲取數據

1.使用ApplicationDataContainer.Values屬性 獲取數據。

Object value = localSettings.Values["exampleSetting"];

2. 使用ApplicationDataContainer.Values屬性獲取復合設置中數據。

Windows.Storage.ApplicationDataCompositeValue composite =    
       
   (Windows.Storage.ApplicationDataCompositeValue)localSettings.Values

["exampleCompositeSetting"];   
       
        
       
if (composite == null)   
       
{      
       
}   
       
else
       
{      
       
}

3.使用ApplicationDataContainer.Values屬性獲取容器中數據

bool 

hasContainer = localSettings.Containers.ContainsKey("exampleContainer");   
       
bool hasSetting = false;   
       
        
       
if (hasContainer)   
       
{   
       
   hasSetting = localSettings.Containers["exampleContainer"].Values.ContainsKey

("exampleSetting");   
       
}

如何刪除設置中數據

1.使用ApplicationDataContainerSettings.Remove方法可以刪 除數據、復合數據設置以及容器設置。

localSettings.Values.Remove ("exampleSetting");

如何將數據寫入文件

通常我們會使用 Windows.Storage.StorageFolder.CreateFileAsync和Windows.Storage.FileIO.WriteTextAsync在本地 數據存儲中創建或更新文件。

async void WriteTimestamp()   
       
{   
       
   Windows.Globalization.DateTimeFormatting.DateTimeFormatter formatter =    
       
       new Windows.Globalization.DatetimeFormatting.DateTimeFormatter("longtime");   
       
        
       
   StorageFile sampleFile = await localFolder.CreateFileAsync("dataFile.txt",    
       
       CreateCollisionOption.ReplaceExisting);   
       
   await FileIO.WriteTextAsync(sampleFile, formatter.Format(DateTime.Now));   
       
}

其中CreationCollisionOption中的ReplaceExisting值表示若該文件不存在就創建,若存在 就替換。

如何從文件中獲取數據

通常我們會使用 Windows.Storage.StorageFolder.GetFileAsync、 Windows.Storage.StorageFile.GetFileFromApplicationUriAsync 和 Windows.Storage.FileIO.ReadTextAsync在本地數據存儲中打開或讀取文件。

async void 

ReadTimestamp()   
       
{   
       
   try
       
   {   
       
      StorageFile sampleFile = await localFolder.GetFileAsync("dataFile.txt");   
       
      String timestamp = await FileIO.ReadTextAsync(sampleFile);        
       
   }   
       
   catch (Exception)   
       
   {         
       
   }   
       
}

MSDN中提供相關示例代碼:Application data sample。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved