SQLiteのdbファイルをアプリに埋め込む
事前に用意したdbファイルをアプリに埋め込む方法について。
以下のサイトを参考にさせていただきました。
Xamarin.FormsでSQLiteのDBを埋め込んでアプリを配布する - nuits.jp blog
ポイントは以下です。
・dbファイルをXamarinプロジェクトに追加して、”埋め込みリソース”にする。
・iOS上のdbファイルが格納されるパス「Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "sqlite.db");」に、ファイルが存在されるかをチェック
・ファイルが存在しなければ、埋め込んでいたdbファイルをコピーする。
こんな感じのコードになりました。
public SQLiteDB() { string path = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "sqlite.db"); if (!File.Exists(path)) { var asm = typeof(App).GetTypeInfo().Assembly; using (var inStream = asm.GetManifestResourceStream("Test.sqlite.db")) { using (var outStream = new FileStream(path, FileMode.Create)) { inStream.CopyTo(outStream); outStream.Flush(); } } } }