FileIO.AppendTextAsync фактически перезаписывается

Я использую FileIO для добавления данных LocalStorage файл LocalStorage .

 public static async Task AppendToJsonLocalStorage<T>(string filename, T objectToWrite) where T : new() { StorageFolder localFolder = ApplicationData.Current.LocalFolder; StorageFile saveFile = await localFolder.CreateFileAsync(filename, CreationCollisionOption.ReplaceExisting); var contentsToWriteToFile = JsonConvert.SerializeObject(objectToWrite); await FileIO.AppendTextAsync(saveFile, contentsToWriteToFile); } 

AppendTextAsync должен добавлять новый текст только в конце существующего файла, не так ли?

Потому что, когда я проверяю файл в проводнике с помощью текстового редактора, он всегда перезаписывает прежний текст.

Всего 1 ответ


Используйте CreationCollisionOption.OpenIfExists вместо CreationCollisionOption.ReplaceExisting при создании файла:

StorageFile saveFile = await localFolder.CreateFileAsync(filename, CreationCollisionOption.OpenIfExists);
var contentsToWriteToFile = JsonConvert.SerializeObject(objectToWrite);
await FileIO.AppendTextAsync(saveFile, contentsToWriteToFile);

ReplaceExisting заменяет любой существующий файл, как следует из названия. Пожалуйста, обратитесь к документации для получения дополнительной информации.


Есть идеи?

10000