Скопируйте файл из "Каталога исходного кода" в изолированное хранилище.

Я создал базу данных sqlite и поместил ее в содержимое своего проекта, в этом месте.

Как я могу проверить, когда пользователь впервые устанавливает приложение и копирует эти 2 базы данных в изолированное хранилище?


Я пробовал таким образом, но он дал мне ошибку "Object reference not set to an instance of an object." на линии

using (Stream stream = Application.GetResourceStream(new Uri("/Assets/DBS/MyPlaylist.db", UriKind.Relative)).Stream)

Вот мой код

private static string DataFolder = "Datas";      
public static void FirstTimeCopyDB()
    {
        using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication())
        {
            if (!isf.DirectoryExists(DataFolder)) 
            {
                isf.CreateDirectory(DataFolder);  
                using (Stream stream = Application.GetResourceStream(new Uri("/Assets/DBS/MyPlaylist.db", UriKind.Relative)).Stream)
                {
                    using (IsolatedStorageFileStream isfs = isf.CreateFile("Datas/MyPlaylist.db"))
                    {
                        byte[] buffer = new byte[1024];
                        int byteRead = -1;
                        while ((byteRead = stream.Read(buffer, 0, buffer.Length)) > 0)
                        {
                            isfs.Write(buffer, 0, byteRead);
                        }
                    }
                }
                using (Stream stream = Application.GetResourceStream(new Uri("/Assets/DBS/MyDatabase.db",UriKind.Relative)).Stream)
                {
                    using (IsolatedStorageFileStream isfs = isf.CreateFile("Datas/MyDatabase.db"))
                    {
                        byte[] buffer = new byte[1024];
                        int byteRead = -1;
                        while ((byteRead = stream.Read(buffer,0,buffer.Length))>0)
                        {
                            isfs.Write(buffer,0,byteRead);
                        }
                    }
                }
            }
            else return;
        }
    }

1 ответ

Что-то вроде этого:

using (var store = IsolatedStorageFile.GetUserStoreForApplication())
{
    if (!store.FileExists("yourDBfileName")) 
    {
     // copy yourDBfile 
    }
}

Узнайте больше здесь

Другие вопросы по тегам