我最近想了解更多关于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");
}
}
我希望你能帮助我!我很抱歉我的英语不好。
答案 0 :(得分:0)
从打开文件选择器的方式来看,我假设您的目标是Windows Phone 8.0 Silverlight?
在这种情况下,FileIO.WriteTextAsync
方法将不起作用,因为它特定于WinRT平台。相反,请使用StorageFile.OpenAsync
方法并将Read
或ReadWrite
作为访问模式传递。两个版本都将返回您可以写入/读取的流。
例如,保存文本框内容的代码可能如下所示:
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(写入文件和读取文件部分)!