使用 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);
}
我正在使用 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);
}