繁体   English   中英

覆盖wp8中的现有文件

[英]Overwriting the existing file in wp8

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

用于写入文件,我正在使用代码

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM