3

我正在尝试追加到最新 Windows Phone 中的文件。问题是我正在尝试异步执行所有操作,但我不知道该怎么做。

    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 中的流的情况下进行操作,但我也无法让它工作(真正的是附加标志),并且真的应该使用新的 WP8 方法。

任何意见表示赞赏

4

3 回答 3

1

更简单的方法:

await Windows.Storage.FileIO.AppendTextAsync(storageFile, "Hello");
于 2015-07-17T16:42:33.703 回答
0

我使用了这段代码,对我有用

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);
            }

        }
于 2014-07-04T21:18:32.343 回答
0

我能够成功使用 Oleh Nechytailo 的建议( Stream.Seek() )

于 2014-08-31T15:53:53.447 回答