如何在文本块中显示文本文件中的文本? Xaml,BlankApp,Window8

时间:2016-04-25 22:04:53

标签: c# xaml windows-phone-8

我最近想了解更多关于fileOpenPickers的信息,并决定制作一个项目。我做了一个FilOpenPicker。当我从FileOpenPicker中选择一些文本文件时,我想在文本块中显示它。但我真的不知道该怎么做。此外,我有一个保存按钮和一个打开按钮。当我按下保存时,它必须将OpenFilePicker中的文本保存在计算机上的某个位置。我写了一些代码,但它并不好。

这是我的代码:

private async void btnOpen_Click(object sender, RoutedEventArgs e)
{
    FileOpenPicker picker = new FileOpenPicker();
    picker.FileTypeFilter.Add(".log");
    StorageFile result = await picker.PickSingleFileAsync();

    if (result != null)
    {
        try
        {
            await FileIO.WriteTextAsync(result, txtInhoud.Text);
            txtInhoud.Text = result.ToString(); 
        }
        catch (Exception )
        {
            txtInhoud.Text = result.ToString(); 
        }
    }

}

private async void  btnSave_Click(object sender, RoutedEventArgs e)
{
    StorageFolder folder = ApplicationData.Current.RoamingFolder;
    StorageFile file = await folder.CreateFileAsync("MyFolder\\MyFile.txt",
    CreationCollisionOption.ReplaceExisting);
    if (file != null)
    {
        await FileIO.WriteTextAsync(file, "data");
    }
}

我希望你能帮助我!我很抱歉我的英语不好。

1 个答案:

答案 0 :(得分:0)

从打开文件选择器的方式来看,我假设您的目标是Windows Phone 8.0 Silverlight?

在这种情况下,FileIO.WriteTextAsync方法将不起作用,因为它特定于WinRT平台。相反,请使用StorageFile.OpenAsync方法并将ReadReadWrite作为访问模式传递。两个版本都将返回您可以写入/读取的流。

例如,保存文本框内容的代码可能如下所示:

var stream = await file.OpenAsync(FileAccessMode.ReadWrite);
using (var writer = new DataWriter(stream.GetOutputStreamAt(0)))
{
    writer.WriteString(txtInhoud.Text);
    await writer.StoreAsync();
    await writer.FlushAsync();
}

有关详细信息(以及读取文件的示例),请参阅this blog post写入文件读取文件部分)!