UWP c#在ApplicationData.Current.LocalFolder中创建文件时返回null



我创建了一个应用程序,该应用程序需要将用户数据存储在应用程序启动时创建的文件中,当我编译该应用程序时,它会显示此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());
}
}
}

我尝试了不同的解决方案,但都不起作用,虽然它与调用await FilesManager.Init();及其实现或其他任何事情无关,但我只是切换到WinUI 3 Unpackaged App,据我所知,它比UWP更好,好在在做异步和读写数据时没有发现任何真正的问题。我只发现了一些与应用程序启动时间有关的小问题(我认为这将在WinUI的后续版本中得到修复(,无论如何,我建议切换到它(它包含UWP的相同功能等,而且它在dotnet核心上运行,因此该应用程序可以独立于dotnet运行时的安装(

最新更新