Xamarin Essentials FileSystem可以保存异步吗

时间:2018-07-18 04:23:46

标签: xamarin

研究Xamarin的要点,想知道FileSystem的目的是什么。

我一直在寻找可以自动加载并保存文件的文件。

在我看来,可能是我不了解它的用法,它为您提供的唯一功能是保存和加载文件的位置,并且没有为您实际保存文件的功能,例如“ Old PCLStorage”

这正确吗?

1 个答案:

答案 0 :(得分:2)

所有Xamarin Essentials文件系统 Helpers 都在提供对应用程序CacheDirectoryAppDataDirectory中两个不同目录的访问以及对只读预捆绑软件的访问应用程序中的文件,因此您不必为这些位置编写基于平台的代码,而无需执行自己的DI(或使用Forms的DI)来访问它们...

一旦有了基于string的目录位置,就可以使用常规的.Net(Std)文件和目录I / O例程。创建/删除子目录,使用.Net(Std)框架或第三方框架/程序包中的异步(或不)函数创建/读取/写入/删除文件。您的选择...

CacheDirectory

缓存目录是一个读/写位置,它实现对“本地”平台缓存位置的访问。在Android上,这是缓存

var cacheDir = FileSystem.CacheDirectory;

AppDataDirectory

应用程序数据目录是应在其中存储常规文件的“默认”位置。

文档状态如下:

  

不是用户数据文件的任何文件

仅供参考:不是用于Sqlite数据库的地方,例如,如果您要实现/遵守与平台相关的规范...为什么我不知道Essentials为什么不包括数据库位置当iOS和Android之类的平台具有适用于它们的API以及正式记录的位置...时;-/

应用程序捆绑的文件(只读)

OpenAppPackageFileAsync提供访问权限(通过Stream)到应用程序中的只读捆绑文件(AndroidAssetsBundleResource等。)

using (var stream = await FileSystem.OpenAppPackageFileAsync("sushiLogo.png"))
{
    using (var reader = new StreamReader(stream))
    {
        var fileContents = await reader.ReadToEndAsync();
    }
}