2015-07-14 4 views
1

Я написал следующий код для копирования файла базы данных из учетной записи Dropbox в базу данных приложения. Но я хочу скопировать только определенную таблицу из таблицы Dropbox в базу данных приложения. Возможно.Скопируйте таблицу из базы данных из Dropbox в приложение

protected Boolean doInBackground(Void... params) { 
     final File tempDir = context.getCacheDir(); 
     File tempFile; 
     FileWriter fr; 
     try { 
      File data = Environment.getDataDirectory(); 

      String currentDBPath = "//data//"+ "loginscreen.example.com.girviapp" +"//databases//"+DATABASE_NAME; 
      File currentDB = new File(data, currentDBPath); 
      FileInputStream fileInputStream = new FileInputStream(currentDB); 

      Entry existingentry= dropbox.metadata(path ,1000,null,true,null); 


      if (existingentry.contents.size() != 0) 
      { 
       for (Entry ent :existingentry.contents) 
       { 
        String name = ent.fileName(); 
        if(name.equals(DATABASE_NAME)) 
        { FileOutputStream outputStream = new FileOutputStream(currentDB); 
         DropboxFileInfo info = dropbox.getFile(path + DATABASE_NAME, null, outputStream, null); 

         return true; 
        } 

       } 
      } 

     } catch (IOException e) { 
      e.printStackTrace(); 
     } catch (DropboxException e) { 
      e.printStackTrace(); 
     } 
     return false; 
    } 

ответ

0

Ответ здесь зависит от того, что вы хотите делать.

Если вы хотите, чтобы загрузить только конкретную таблицу из файла базы данных, хранящейся в Dropbox, чтобы сохранить пропускную способность, не загружая все данные, тогда нет, это невозможно. Единица хранения в API Dropbox, которую вы используете, - это файл, а Dropbox не знает, что представляют собой отдельные таблицы в вашем файле базы данных, поэтому у вас нет способа указать конкретную таблицу.

С другой стороны, если вы не против загрузки всего файла из Dropbox, то да, это возможно. Просто скачайте файл, как вы делаете, а затем загрузите его как базу данных локально. Затем запросите только нужные данные, то есть нужную таблицу, и сделайте то, что вам нужно.

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