Windows Phone 8.1 StorageFile 通过Uri读取文件

network | | 访问(55)
<StackPanel>
    <TextBox Header="文件信息:" x:Name="info" TextWrapping="Wrap"></TextBox>
    <Button x:Name="bt_save" Content="创建文件" Width="370" Click="bt_save_Click"></Button>
    <Button x:Name="bt_read" Content="通过Uri读取文件" Width="370" Click="bt_read_Click"></Button>
</StackPanel>
public sealed partial class MainPage: Page {
    private string fileName = "testfile.txt";
    public MainPage() {
        this.InitializeComponent();
    }

    private async void bt_save_Click(object sender, RoutedEventArgs e) {
        if (info.Text != "") {
            IStorageFolder applicationFolder = ApplicationData.Current.LocalFolder;
            IStorageFile storageFile = await applicationFolder.CreateFileAsync(fileName, CreationCollisionOption.OpenIfExists);
            await FileIO.WriteTextAsync(storageFile, info.Text);
            await new MessageDialog("保存成功,文件的路径:" + storageFile.Path).ShowAsync();
        } else {
            await new MessageDialog("内容不能为空").ShowAsync();
        }
    }

    private async void bt_read_Click(object sender, RoutedEventArgs e) {
        string text;
        try {
            var storageFile = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appdata:///local/" + fileName));
            IRandomAccessStream accessStream = await storageFile.OpenReadAsync();
            using(StreamReader streamReader = new StreamReader(accessStream.AsStreamForRead((int) accessStream.Size))) {
                text = streamReader.ReadToEnd();
            }
        } catch(Exception exce) {
            text = "文件读取错误:" + exce.Message;
        }
        await new MessageDialog(text).ShowAsync();
    }
}