如何在Xamarin跨平台应用程序中使用MvxResourceLoader.GetResourceStream

时间:2014-12-23 22:41:42

标签: android mvvmcross

我需要在包含为资源(Android中的资产)的数据库中读取并将其写回到SQLite期望它所在的位置。在Xamarin.Forms应用程序中,这适用于Android项目。

const string dataBaseName = "birdsnbflys.db3";
string dbPath = FileAccessHelper.GetLocalFilePath(dataBaseName);
if (!System.IO.File.Exists(dbPath))
{
    var dbAssetStream = Assets.Open(dataBaseName);
    var dbFileStream = new System.IO.FileStream(dbPath, System.IO.FileMode.OpenOrCreate);
    var buffer = new byte[1024];
    int b = buffer.Length;
    int length;
    while ((length = dbAssetStream.Read(buffer, 0, b)) > 0)
    {
        dbFileStream.Write(buffer, 0, length);
    }

    dbFileStream.Flush();
    dbFileStream.Close();
    dbAssetStream.Close();
}

在使用MvvmCross的应用程序中需要做同样的事情但是还没有找到任何关于如何使用ResourceLoader插件的GetResourceStream方法的示例或讨论。我有一个接口定义了Core PCL项目以及Android项目中特定于平台的实现。这是我可以使用ResourceExists方法确定指定文件是否实际存在的点。只是还不知道如何使用GetResourceStream方法。

任何指针都会受到赞赏。

谢谢, 戴夫

0 个答案:

没有答案