2014-01-23 5 views
1

Я пытаюсь загрузить огромный файл базы данных (database.db) в почтовый от сервера к какой-то папки (внешний/внутренний) для хранения, нагрузки это в частную базу данных хранилище моей заявки и удалите исходный файл (database.db.zip). У меня уже есть загрузка и сохранение исходного файла.Перемещение базы данных из файла частной внутренней памяти

Проблема loading database to private storage. Что-то вроде «android-sqlite-agent-helper», но в этой библиотеке есть только одна конкретная исходная папка, откуда берется файл базы данных -> «активы/базы данных /», но мне нужно заменить активы каким-либо другим каталогом. Остальная часть этой библиотеки отлично работает в моем случае. Есть ли способ сделать то, что я хочу?

1) Скачать database.db файл с андроида DownloadManager 2) Переместить database.db файл/данные/данные/PACKAGE_NAME/баз данных/ базы данных 3) Нагрузка

+0

Я не понимаю, что ваш вопрос есть? – njzk2

ответ

2
public static void copyDatabase(Context c, String DATABASE_NAME) { 
     String databasePath = c.getDatabasePath(DATABASE_NAME).getPath(); 
     File f = new File(databasePath); 
     OutputStream myOutput = null; 
     InputStream myInput = null; 
     Log.d("testing", " testing db path " + databasePath); 
     Log.d("testing", " testing db exist " + f.exists()); 

     if (f.exists()) { 
      try { 

       File directory = new File("/mnt/sdcard/DB_DEBUG"); 
       if (!directory.exists()) 
        directory.mkdir(); 

       myOutput = new FileOutputStream(directory.getAbsolutePath() 
         + "/" + DATABASE_NAME); 
       myInput = new FileInputStream(databasePath); 

       byte[] buffer = new byte[1024]; 
       int length; 
       while ((length = myInput.read(buffer)) > 0) { 
        myOutput.write(buffer, 0, length); 
       } 

       myOutput.flush(); 
      } catch (Exception e) { 
      } finally { 
       try { 
        if (myOutput != null) { 
         myOutput.close(); 
         myOutput = null; 
        } 
        if (myInput != null) { 
         myInput.close(); 
         myInput = null; 
        } 
       } catch (Exception e) { 
       } 
      } 
     } 
    } 
+0

этот код будет экспортировать базу данных в какую-то папку на SD-карте .. ее совсем не то, что я пытаюсь сделать. Мне нужно работать с базой данных, как всегда ... но иногда мне нужно загрузить весь файл и заменить его старой. –

+0

просто переверните его. Идея этого ответа заключается в том, что вам просто нужно скопировать файл. – njzk2

+0

Да, наконец, я сделал это. Проблема заключалась в проверке, если база данных задана по-разному .. но я все еще использовал SQL-помощник из этой библиотеки. Теперь это работа. Простая копия базы данных - путь. –

Смежные вопросы