一般我們開發Windows Store App 時,時常會記錄使用者的設定或資料,對於需要再裝置間同步使用者資料的APP會採用RoamingFolder的空間放置要漫遊到其他裝置的資料,或供應用程式下一次的存取,但RoamingFolder地使用方式對於新手開發者來說有點不熟悉,那們常痛不如短痛,我們就來寫個檔案讀寫的RoamingFolder的Help類別吧!!
本篇文章將引導您自製簡易漫遊資料RoamingFolder檔案讀寫類別(Class)。
一般我們開發Windows Store App 時,時常會記錄使用者的設定或資料,對於需要再裝置間同步使用者資料的APP會採用RoamingFolder的空間放置要漫遊到其他裝置的資料,或供應用程式下一次的存取,但RoamingFolder地使用方式對於新手開發者來說有點不熟悉,那們常痛不如短痛,我們就來寫個檔案讀寫的RoamingFolder的Help類別吧!!
本篇文章將引導您自製簡易漫遊資料RoamingFolder檔案讀寫類別(Class)。
由於在Windows Store App 的SDK中並沒有提供File.isExist的方法,所以我們必須要另外做判斷檔案是否存在。
一般在讀取檔案時我們會採用這種方式
1: //取得roamingFolder 的空間資料夾
2: StorageFolder roamingFolder = ApplicationData.Current.RoamingFolder;
3: try
4: {
5: StorageFile sampleFile = await roamingFolder.GetFileAsync(FileName);
6: file_text = await FileIO.ReadTextAsync(sampleFile);//將獨到的文字存入
7:
8: }
9: catch(Exception ex)
10: {
11: Debug.WriteLine("GetFileAsync找不到檔案 : "+ex.Message.ToString());
12: //若發生例外則檔案不存在,或有其他因素無法讀取檔案
13: }
創建檔案時會使用以下方式
1: Debug.WriteLine("創建新檔案:" + FileName)
2: DateTimeFormatter formatter = new Windows.Globalization.DateTimeFormatting.DateTimeFormatter("longtime");
3: StorageFile sampleFile = await roamingFolder.CreateFileAsync(FileName, CreationCollisionOption.ReplaceExisting);
4: await FileIO.WriteTextAsync(sampleFile,"");
寫入檔案會採用以下方式
1: private static StorageFolder roamingFolder = ApplicationData.Current.RoamingFolder;
2: //讀取檔案不存在則Null 、無法解析 null
3: public static async Task<string> LoadFile(string FileName)
4: {
5: string file_text = "";
6:
7: try
8: {
9: StorageFile sampleFile = await roamingFolder.GetFileAsync(FileName);
10: file_text = await FileIO.ReadTextAsync(sampleFile);
11: return file_text;
12: }
13: catch(Exception ex)
14: {
15: Debug.WriteLine("GetFileAsync找不到檔案 : "+ex.Message.ToString());
16: return null;
17: }
18: }
19:
20: //創建檔案
21: public static async Task CreateFile(string FileName)
22: {
23: Debug.WriteLine("創建新檔案:" + FileName);
24: DateTimeFormatter formatter = new Windows.Globalization.DateTimeFormatting.DateTimeFormatter("longtime");
25: StorageFile sampleFile = await roamingFolder.CreateFileAsync(FileName, CreationCollisionOption.ReplaceExisting);
26: await FileIO.WriteTextAsync(sampleFile,"");
27: }
28:
29: //寫入檔案
30: public static async Task WriteFile(string FileName, string content)
31: {
32: Debug.WriteLine("寫入檔案:" + FileName);
33: Debug.WriteLine("寫入檔案內容:" + content);
34: DateTimeFormatter formatter = new Windows.Globalization.DateTimeFormatting.DateTimeFormatter("longtime");
35: StorageFile sampleFile = await roamingFolder.CreateFileAsync(FileName, CreationCollisionOption.ReplaceExisting);
36: await FileIO.WriteTextAsync(sampleFile, content);
37: }
38: }
使用方法是
1: string File_Name="123.ext";
2: try{
3: string result=await LoadFile(File_Name);//讀取檔案
4: }catch{
5: //無法讀取檔案
6: }
7:
8: CreateFile(File_Name); //創建檔案
9:
10: WriteFile(File_Name,"寫入的文字");//寫入文字
所以說為了以後減少我們開發上的複雜性 將所有功能統整到同一個class就可以囉! 下次只要拿引用就可以將所有功能統整到同一個class就可以囉! 下次只要拿引用就可以了!!
如此一來我們就學會
自製簡易漫遊資料RoamingFolder檔案讀寫類別
Reference:Quickstart: Roaming app data
文章中的敘述如有觀念不正確錯誤的部分,歡迎告知指正 謝謝
轉載請註明出處,並且附上本篇文章網址 ! 感謝。