我创建了一个应用程序,它需要将用户数据存储在应用程序启动时创建的文件中,当我编译它时,它向我显示以下 System.IO.FileLoadException:无法找到或加载特定文件。(HRESULT中的异常:0x80131621) 和此 *System.NullReferenceException:指针 * 无效。
当应用程序启动时,它在所有操作之前调用Init()
方法。
public static class FilesManager
{
public static StorageFolder ROOT_DIRECTORY, USER_DIRECTORY;
public static StorageFile FILES_MANAGER_CACHE_FILE;
public static volatile string FILES_MANAGER_CACHE;
public static volatile StorageFolder FOLDER;
public static async Task Init()
{
try
{
FOLDER = await ApplicationData.Current.LocalFolder.CreateFolderAsync("DashData", CreationCollisionOption.OpenIfExists);
FOLDER = await ApplicationData.Current.LocalFolder.GetFolderAsync("DashData");
if (FOLDER == null) Debug.WriteLine("FOLDER IS NULL.");
FILES_MANAGER_CACHE_FILE = await FOLDER.CreateFileAsync("filesmanageruserdata.json", CreationCollisionOption.OpenIfExists);
FILES_MANAGER_CACHE_FILE = await FOLDER.GetFileAsync("filesmanageruserdata.json");
await LoadFilesManagerCacheAsync();
Debug.WriteLine("TEXT: " + FILES_MANAGER_CACHE);
}
catch(Exception e)
{
Debug.WriteLine("ERROR: " + e.ToString());
}
}
public static async Task LoadFilesManagerCacheAsync()
{
FILES_MANAGER_CACHE = await FileIO.ReadTextAsync(FILES_MANAGER_CACHE_FILE);
}
public static async Task storeUserData(string content)
{
try
{
await FileIO.WriteTextAsync(FILES_MANAGER_CACHE_FILE, content);
}catch(Exception e)
{
Debug.WriteLine("ERROR: " + e.ToString());
}
}
}
1条答案
按热度按时间9udxz4iz1#
我尝试了不同的解决方案,但没有一个工作,虽然它与调用
await FilesManager.Init();
无关,也没有它的实现或其他任何东西,我只是切换到WinUI 3未打包的应用程序,它比UWP更好,因为我知道,好事情没有发现任何真实的的问题做异步的东西和阅读/写数据。我只发现了一些与应用程序启动时间相关的小问题(我认为这将在WinUI的后续版本中得到修复),无论如何,我建议切换到它(它包含UWP的相同功能以及更多功能,它也运行在dotnet核心上,因此应用程序可以独立于dotnet运行时的安装)