我的应用程序数据存储在本地 JSON 中。最初,我将其存储为字符串应用程序设置,但这不提供足够的空间。因此,我正在更新我的应用程序以从本地存储中的 JSON 文件读取/写入。
用户与我的应用程序交互时,我的应用程序会在各种时间读取和写入 JSON,并且在读取或写入文件时经常出现以下错误:
“System.IO.FileLoadException: '由于正在被另一个进程使用,因此无法访问该文件。'”
以下是涉及的方法:
有时候错误出现在
用户与我的应用程序交互时,我的应用程序会在各种时间读取和写入 JSON,并且在读取或写入文件时经常出现以下错误:
“System.IO.FileLoadException: '由于正在被另一个进程使用,因此无法访问该文件。'”
以下是涉及的方法:
private static async Task<StorageFile> GetOrCreateJsonFile()
{
bool test = File.Exists(ApplicationData.Current.LocalFolder.Path + @"\" + jsonFileName);
if(test)
return await ApplicationData.Current.LocalFolder.GetFileAsync(jsonFileName);
else
return await ApplicationData.Current.LocalFolder.CreateFileAsync(jsonFileName);
}
private static async void StoreJsonFile(string json)
{
StorageFile jsonFile = await GetOrCreateJsonFile();
await FileIO.WriteTextAsync(jsonFile, json);
}
private static async Task<string> GetJsonFile()
{
StorageFile jsonFile = await GetOrCreateJsonFile();
return await FileIO.ReadTextAsync(jsonFile);
}
有时候错误出现在
WriteTextAsync
,有时候是在ReadTextAsync
。似乎没有特定出错的时间点,只是随机发生。如果有其他避免这些错误的方法,请告诉我。