缓存变量在独立存储中,可移植类库的方式

本文关键字:可移植 类库 方式 变量 独立 存储 缓存 | 更新日期: 2023-09-27 18:33:37

我正在尝试弄清楚如何读取和写入存储在应用程序独立存储中的参数。

现在我正在构建一个Windows Phone应用程序,但是由于我想要一个win8应用程序,我想我可以在便携式类库项目中做到这一点,并找到了这个很棒的PCLStorage。

我的缓存类看起来像这样,用于存储参数:

    public async static Task<string> GetParam(string name)
    {
        IFolder rootfolder = FileSystem.Current.LocalStorage;
        IFolder folder = await rootfolder.GetFolderAsync("isostore");
        IFile file = await folder.GetFileAsync(name);
        return await file.ReadAllTextAsync();
    }
    public async static void SaveParam(string name, string param)
    {
        IFolder rootfolder = FileSystem.Current.LocalStorage;
        IFolder folder = await rootfolder.CreateFolderAsync("isostore", CreationCollisionOption.OpenIfExists);
        IFile file = await folder.CreateFileAsync(name, CreationCollisionOption.ReplaceExisting);
        await file.WriteAllTextAsync(param);
    }

写入部分是 okey,如果有的话它会覆盖。阅读部分是问题所在。IFile 和 IFolder 没有任何.Exists函数 (???),那么如果我在保存之前调用 Get 会返回什么?

缓存变量在独立存储中,可移植类库的方式

我认为在GetParam方法中,您应该使用CreationCollisionOption.OpenIfExists参数调用CreateFolderAsync和CreateFileAsync。 然后,您无需担心事先单独创建它们或捕获它们存在/不存在的异常。