使用 WriteFileAsync 附加到文件

use WriteFileAsync to append to file

我正在使用 listView 显示用户完成的条目并根据输入的值突出显示它们。将一行写入 listView 后,我将同一行文本保存到一个文件中。不幸的是,当我写入文件时,我覆盖了已经存在的内容。我需要将我的最新行附加到文件的末尾,或者每次用户添加条目时我都必须编写整个列表。

以下是我目前处理的一些情况,为了简洁起见删除了 if 语句。

private void btnSubmit_Click(object sender, RoutedEventArgs e)
{
  if(tbSystolic.Text != "" && tbDiastolic.Text != "") {
    string bpLevel = "";
    if(Convert.ToInt32(tbSystolic.Text) < 90 || Convert.ToInt32(tbDiastolic.Text) < 60) bpLevel = "Lo";
    //[other if statements removed to save space...]
    string row = tbSystolic.Text+"/"+tbDiastolic.Text+" "+bpLevel+" @ "+tpTime.Time+" on "+dpDate.Date.ToString("MM/dd/yyyy");
    ListViewItem item = new ListViewItem();
    item.Content = row;
    //[other stuff done to 'item' removed to save space...]
    lvReadings.Items.Insert(0,item);
    saveReadings(row);
  }
}

async void saveReadings(string row)
{
  StorageFile readingsFile = await localFolder.CreateFileAsync(READINGSFILE, CreationCollisionOptin.OpenIfExists);
  await FileIO.WriteTextAsync(readingsFile,row);
}

我想最后一行才是真正的问题所在。我只想将行添加到末尾。如果那不可能,也没关系。我只是想确定一下。我看不出有什么方法可以打开不需要异步的文件,而且我不能只将 "async" 添加到 MainPage : Page.

只需调用 AppendTextAsync 而不是 WriteTextAsync

async void saveReadings(string row)
{
  StorageFile readingsFile = await localFolder.CreateFileAsync(READINGSFILE, CreationCollisionOptin.OpenIfExists);
  await FileIO.AppendTextAsync(readingsFile,row);
}