C# 覆盖wp8中的现有文件

C# 覆盖wp8中的现有文件,c#,windows-phone-7,windows-phone-8,C#,Windows Phone 7,Windows Phone 8,我正在制作一个应用程序,我想在其中覆盖我的文件,就像我在文件中写入一个数字并读取,但下次我想将新数字添加到现有文件中时,请读取它 对于写入文件,我使用的是代码 private async void cross_Click(object sender, RoutedEventArgs e) { byte[] fileBytes = System.Text.Encoding.UTF8.GetBytes(this.ScoreTB.Text.ToCharArray()); Stor

我正在制作一个应用程序,我想在其中覆盖我的文件,就像我在文件中写入一个数字并读取,但下次我想将新数字添加到现有文件中时,请读取它

对于写入文件,我使用的是代码

private async void cross_Click(object sender, RoutedEventArgs e)
{


    byte[] fileBytes = System.Text.Encoding.UTF8.GetBytes(this.ScoreTB.Text.ToCharArray());

    StorageFolder local = Windows.Storage.ApplicationData.Current.LocalFolder;

    var dataFolder = await local.CreateFolderAsync("MyFolder", CreationCollisionOption.OpenIfExists);

    var file = await dataFolder.CreateFileAsync("MyFile.txt", CreationCollisionOption.ReplaceExisting);

    using (var s = await file.OpenStreamForWriteAsync())
    {
        s.Write(fileBytes, 0, fileBytes.Length);
    }
}
用于读取文件

private async void aboutus_Click(object sender, RoutedEventArgs e)
{
    StorageFolder local = Windows.Storage.ApplicationData.Current.LocalFolder;

    if (local != null)
    {
        // Get the DataFolder folder.
        var dataFolder = await local.GetFolderAsync("MyFolder");

        // Get the file.
        var file = await dataFolder.OpenStreamForReadAsync("MyFile.txt");

        // Read the data.
        using (StreamReader streamReader = new StreamReader(file))
        {
            this.Score.Text = streamReader.ReadToEnd();
        }
    }
    else
    {
        MessageBox.Show("No File Created");
    }
}
请帮助我如何在windows phone应用程序开发中覆盖现有文件


提前感谢

据我所知,您不需要覆盖,只需要附加

1) 将
ReplaceExisting
更改为
OpenIfExists

  var file = await dataFolder.CreateFileAsync("MyFile.txt", CreationCollisionOption.OpenIfExists );
2) 在写入之前查找到流的末尾:

  using (var s = await file.OpenStreamForWriteAsync())
  {
    s.Seek(0, SeekOrigin.End );
    s.Write(fileBytes, 0, fileBytes.Length);
  }

您当前的代码有什么问题?看起来它已经完成了任务,
CreationCollisionOption.ReplaceExisting
将覆盖现有文件,不是吗?看,我正在制作一个小游戏,每次都会出现一个数字,假设第1次出现80,我现在可以在文件中写入,下次出现20,所以我希望该文件应为80+20,当我读取该文件时,应给出结果100。但是通过这段代码,我得到了20,它被覆盖了,但是我希望它应该添加到前面的数字中。为什么不使用IsolatedStorageSettings[link]()?它只是一个字典,你可以在那里保存密钥和值OK,这就澄清了问题。这听起来更像是附加到现有文件,而不是覆盖。试试@crea7or-answer,看起来很有希望(我自己还没试过)。