【问题标题】:Path to store SQLite database in Xamarin Android在 Xamarin Android 中存储 SQLite 数据库的路径
【发布时间】:2015-11-24 17:28:31
【问题描述】:

我正在尝试将本地 SQLite 数据库存储在设备的内部存储中。当我使用模拟器时,这是:

static string dbName = "totems.sqlite";
string dbPath = Path.Combine (Android.OS.Environment.ExternalStorageDirectory.ToString (), dbName);

工作正常。但是当我尝试在我的 Nexus 5 上进行调试时,它不起作用,因为它没有外部存储。我搜索了它的存储位置,以便它也可以在我的 Nexus 上运行。我将其替换为:

static string dbName = "totems.sqlite";
string dbPath = Path.Combine ("/data/data/com.companyname.totem/databases/", dbName);

但现在它不能在我的 Nexus 5 上运行,也不能在我的模拟器上运行。它说它找不到路径。

我做错了什么?

提前致谢。

【问题讨论】:

    标签: c# android sqlite xamarin


    【解决方案1】:

    我知道这是一个旧线程,但旧答案有错字。工作语法应该是:

    string path = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "DatabaseName.txt");
    

    【讨论】:

      【解决方案2】:

      我使用以下代码:

      string path = Path.Combine(System.Enviroment.GetFolderPath(System.Enviroment.SpecialFolder.Personal), "data.txt");
      

      我认为应该像你想要的那样写入内部存储

      【讨论】:

      • 这是要走的路。
      【解决方案3】:

      来自docs.com

      LocalApplicationData: 作为公共的目录 当前使用的特定于应用程序的数据的存储库, 非漫游用户。

      Personal:用作公共存储库的目录 文件。此成员相当于 MyDocuments。

      从这里我使用:

      var db_directory = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData),"databases"))
      
      var db_path = Path.Combine(db_directory,"data.db");
      

      也来自此示例 (XF)
      docs.com xamarin tutorial

      public static Database Database
              {
                  get
                  {
                      if (database == null)
                      {
                          database = new Database(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "people.db3"));
                      }
                      return database;
                  }
              }
      

      【讨论】:

        猜你喜欢
        • 2019-04-02
        • 1970-01-01
        • 2015-11-12
        • 1970-01-01
        • 1970-01-01
        • 2019-11-08
        • 2021-04-21
        • 2021-08-13
        • 1970-01-01
        相关资源
        最近更新 更多