У меня есть приложение UWP, которое я развертываю как AppPackage, и я вижу ошибку отключения при попытке прочитать / сохранить файл в папке LocalState. Это происходит не каждый раз, поэтому я думаю, что файл заблокирован во время процесса в какой-то момент. Ошибка:
В целевой многобайтовой кодовой странице нет сопоставления для символа Unicode.
И код, который выдает ошибку
private const string SETTINGS_FILENAME = "settings.json";
private static readonly StorageFolder _settingsFolder = Windows.Storage.ApplicationData.Current.LocalFolder;
public async static Task<ConfigWrapper> LoadSettings()
{
try
{
StorageFile sf = await _settingsFolder.GetFileAsync(SETTINGS_FILENAME);
if (sf == null) return null;
string content = await FileIO.ReadTextAsync(sf, Windows.Storage.Streams.UnicodeEncoding.Utf8);
return JsonConvert.DeserializeObject<ConfigWrapper>(content);
}
catch (Exception e)
{
DiagnosticsClient.TrackException(e);
return null;
}
}
public async static Task<bool> SaveSettings(ConfigWrapper data)
{
try
{
StorageFile file = await _settingsFolder.CreateFileAsync(SETTINGS_FILENAME, CreationCollisionOption.ReplaceExisting);
string content = JsonConvert.SerializeObject(data, Newtonsoft.Json.Formatting.Indented, new JsonSerializerSettings { });
await FileIO.WriteTextAsync(file, content, Windows.Storage.Streams.UnicodeEncoding.Utf8);
return true;
}
catch (Exception e)
{
DiagnosticsClient.TrackException(e);
return false;
}
}
Я сохраняю и читаю файл в UTF-8, поэтому я не уверен, почему произошла ошибка кодирования. Что мне нужно сделать (например, заблокировать файл), когда я сохраняю / читаю?