2016-03-23 3 views
0

Я читал другие сообщения об экспортном файле базы данных на Android, но я не могу понять, как создать или скопировать эту базу данных в папку Downloader.Экспорт базы данных в папку «Загрузить» на Android?

я использую на моем манифесте (разрешения):

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> 

активность:

Я называю эту функцию, когда я нажать кнопку, но ничего не происходит (без исключений и не копию файла или созданные из currentDBPath)

public void exportDatabase() { 
    try { 
     File download_folder = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS); 
     File data = Environment.getDataDirectory(); 

     if (download_folder.canWrite()) { 
      String currentDBPath = "//data//"+getPackageName()+"//databases//"+"YourWords"; 
      String backupDBPath = "YourWords"; 
      File currentDB = new File(data, currentDBPath); 
      File backupDB = new File(download_folder, backupDBPath); 

      if (currentDB.exists()) { 
       FileChannel src = new FileInputStream(currentDB).getChannel(); 
       FileChannel dst = new FileOutputStream(backupDB).getChannel(); 
       dst.transferFrom(src, 0, src.size()); 
       src.close(); 
       dst.close(); 
      } 
     } 
    } catch (Exception e) { 

    }  
} 

ответ

1

НИКОГДА НЕ тропИнок жёстко.

Чтобы получить объект File, указывающий на базу данных, если база данных находится по умолчанию, use getDatabasePath().

Также НИКОГДА НЕ ИСКЛЮЧИТЕЛЬНЫЕ ИСКЛЮЧЕНИЯ.

Добавить Log.e("RuslanApp", "Crash in saving database", e); в блок catch, чтобы вы могли использовать LogCat, чтобы узнать, что может быть неправильным.

+0

С помощью Toast и используя ваш совет по использованию журналов: Он говорит мне, что файл сохранен на/storage/sdcard0/Загрузка, но я не вижу его на своем устройстве ( см. Скрытые файлы). – Ruslan

+0

@ Ruslan: используйте «MediaScannerConnection» и 'scanFile()' для обновления «MediaStore» и посмотрите, поможет ли это. – CommonsWare

+0

Наконец, проблема заключалась в добавлении .db в файл имен String на getDatabasePath(). Спасибо за ваше время и совет. – Ruslan

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