2

我对这行代码有疑问。想在设备上创建 sqlite 数据库。

 string dbPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal) + "\\test.db";
        if (!System.IO.File.Exists(dbPath))

            using (System.IO.Stream sr = ***Assets***.Open("test.db"))
            {
                using (System.IO.Stream srTo = System.IO.File.Create(dbPath))
                {
                    sr.CopyTo(srTo);
                }
            }

此消息给出:名称“资产”在当前上下文中不存在

有一个类似的项目,但比big更全面。没有错误。他们的资产在我遵循的定义中定义了 c 驱动器中的一个 cs 文件,提供了对 Android.Content.ContextWrapper 的引用。不在项目路径上。[文件如何被添加应用程序?

4

2 回答 2

3

如果您没有在活动中执行此操作,则需要对活动/上下文的引用。您需要将其传递给构造函数中的辅助类。

public yourClass(Activity context.......){

      context.Assets.Open("your.db");
}
于 2013-04-11T14:29:29.053 回答
0

你可以这样做:

using (System.IO.Stream sr = Android.App.Application.Context.Assets.Open("test.db"))
{
     using (System.IO.Stream srTo = System.IO.File.Create(dbPath))
     {
          sr.CopyTo(srTo);
     }
}
于 2019-07-08T06:55:04.957 回答