Windows Phone 8.1 StorageFile 文件存储

network | | 访问(62)
<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="读取保存的文件" Width="370" Click="bt_read_Click"></Button>
    <Button x:Name="bt_delete" Content="删除文件" Width="370" Click="bt_delete_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 != "") {
            await WriteFile(fileName, info.Text);
            await new MessageDialog("保存成功").ShowAsync();
        } else {
            await new MessageDialog("内容不能为空").ShowAsync();
        }
    }

    private async void bt_read_Click(object sender, RoutedEventArgs e) {
        string content = await ReadFile(fileName);
        await new MessageDialog(content).ShowAsync();
    }

    public async Task < string > ReadFile(string fileName) {
        string text;
        try {
            IStorageFolder applicationFolder = ApplicationData.Current.LocalFolder;
            IStorageFile storageFile = await applicationFolder.GetFileAsync(fileName);
            IRandomAccessStream accessStream = await storageFile.OpenReadAsync();
            using(StreamReader streamReader = new StreamReader(accessStream.AsStreamForRead((int) accessStream.Size))) {
                text = streamReader.ReadToEnd();
            }
        } catch(Exception e) {
            text = "文件读取错误:" + e.Message;
        }
        return text;
    }

    public async Task WriteFile(string fileName, string content) {
        IStorageFolder applicationFolder = ApplicationData.Current.LocalFolder;
        IStorageFile storageFile = await applicationFolder.CreateFileAsync(fileName, CreationCollisionOption.OpenIfExists);
        await FileIO.WriteTextAsync(storageFile, content);
    }

    private async void bt_delete_Click(object sender, RoutedEventArgs e) {
        string text;
        try {
            IStorageFolder applicationFolder = ApplicationData.Current.LocalFolder;
            IStorageFile storageFile = await applicationFolder.GetFileAsync(fileName);
            await storageFile.DeleteAsync();
            text = "删除成功";
        } catch(Exception exce) {
            text = "文件删除错误:" + exce.Message;
        }
        await new MessageDialog(text).ShowAsync();
    }
}