FileIO.AppendTextAsync фактически перезаписывается - PullRequest
0 голосов
/ 16 мая 2019

Я использую FileIO для добавления данных Json в файл 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 Ответ

3 голосов
/ 16 мая 2019

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...