C# 如何在Windows Phone 8中异步附加文件
我正在尝试附加到最新Windows Phone中的文件。问题是我正在尝试异步地做每件事,但我不知道如何做C# 如何在Windows Phone 8中异步附加文件,c#,append,windows-phone-8,C#,Append,Windows Phone 8,我正在尝试附加到最新Windows Phone中的文件。问题是我正在尝试异步地做每件事,但我不知道如何做 private async void writeResult(double lat, double lng) { StorageFolder localFolder = ApplicationData.Current.LocalFolder; StorageFile storageFile = await localFolder.Create
private async void writeResult(double lat, double lng)
{
StorageFolder localFolder = ApplicationData.Current.LocalFolder;
StorageFile storageFile = await localFolder.CreateFileAsync("result.txt", CreationCollisionOption.OpenIfExists);
Stream writeStream = await storageFile.OpenStreamForWriteAsync();
using (StreamWriter writer = new StreamWriter(writeStream))
//using (StreamWriter sw = new StreamWriter("result.txt", true))
{
{
await writer.WriteLineAsync(lat + "," + lng);
//await sw.WriteLineAsync(lat + "," + lng);
writer.Close();
//sw.Close();
}
}
}
到目前为止,我已经有了这个,它可以很好地写入文件,我以后也可以很好地读取它,但是它写在我拥有的内容上,而不是写在新的一行上。注释掉的行显示了如何在WP7中不使用流,但是我也不能让它工作(真正的是append标志),并且无论如何都应该使用新的WP8方法
任何值得赞赏的评论我使用了这个代码,对我有用
private async System.Threading.Tasks.Task WriteToFile()
{
// Get the text data from the textbox.
byte[] fileBytes = System.Text.Encoding.UTF8.GetBytes("Some Data to write\n".ToCharArray());
// Get the local folder.
StorageFolder local = Windows.Storage.ApplicationData.Current.LocalFolder;
// Create a new folder name DataFolder.
var dataFolder = await local.CreateFolderAsync("DataFolder",
CreationCollisionOption.OpenIfExists);
// Create a new file named DataFile.txt.
var file = await dataFolder.CreateFileAsync("DataFile.txt",
CreationCollisionOption.OpenIfExists);
// Write the data from the textbox.
using (var s = await file.OpenStreamForWriteAsync())
{
s.Seek(0, SeekOrigin.End);
s.Write(fileBytes, 0, fileBytes.Length);
}
}
我成功地使用了Oleh Nechytailo的建议(Stream.Seek())更简单的方法:
await Windows.Storage.FileIO.AppendTextAsync(storageFile, "Hello");
请尝试使用Stream.Seek()将当前流位置设置为流的结尾。如果您要请客,请添加作为答案,我将接受