using Windows.Storage;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using System;
using System.Threading.Tasks;
using Windows.UI.Popups;
using Windows.UI.Core;
namespace pc.NavigateExample
{
public sealed partial class MainPage : Page
{
public MainPage()
{
InitializeComponent();
Task.Run(async () =>
{
var roamingFolder = ApplicationData.Current.RoamingFolder;
var storageFile = await roamingFolder.GetFileAsync("data1.txt");
if (storageFile != null)
return storageFile;
throw new ArgumentNullException();
}).ContinueWith(async tr =>
{
await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, async () =>
{
if (tr.Status == TaskStatus.Faulted)
await new MessageDialog("No File detected").ShowAsync();
else
Input_TextBox.Text = await FileIO.ReadTextAsync(tr.Result);
});
});
ApplicationData.Current.DataChanged += Current_DataChanged;
}
private async void Current_DataChanged(ApplicationData sender, object args)
{
var storageFile = await sender.RoamingFolder.GetFileAsync("data1.txt");
Input_TextBox.Text = await FileIO.ReadTextAsync(storageFile);
}
async void
Save_Button_Click(object sender, RoutedEventArgs e)
{
var parameter = Input_TextBox.Text;
var roamingFolder = ApplicationData.Current.RoamingFolder;
var storageFile = await roamingFolder.CreateFileAsync("data1.txt",
CreationCollisionOption.ReplaceExisting);
await FileIO.WriteTextAsync(storageFile, parameter);
}
}
}
Now as mentioned before the whole app cannot exceed 100kb of roaming data, on top of that if the app is not used for ~30 days the roaming data is deleted. also remember that if your app exceeds the 100kb threshold there will be no exception, just your roaming data syncing will stop working.