public void dbBackup(){
  
  try {     

   File sdcardDir = Environment.getExternalStorageDirectory();     //sdcardDir은 외장메모리 경로       
   String backupDBPath = "Android/data/MyCampingGear/";
   File backupDir = new File(sdcardDir,  backupDBPath);        //backupDir은 백업DB를 저장할 경로
   backupDir.mkdir();      //백업DB를 저장할 경로를 생성

 

   if (backupDir.canWrite()){
    Toast.makeText(this, "sdcard에 쓰기가능함" , 3000) .show();
    String currentDBdir = "data/choo.choo.MyCampingGear/databases/";
    String currentDBfile = "mylist";
    String backupDBdir = "Android/data/MyCampingGear/";
    String backupDBfile = "mylist";
 
    File dbDatadir = Environment.getDataDirectory();      //data디렉토리를 가져옴
    File originalDir = new File(dbDatadir, currentDBdir);      //DB파일이 있는 디렉토리 경로
    File originalDB = new File(originalDir, currentDBfile);      //originalDB은 DB파일의 경로
    File backupDB = new File(backupDBdir, backupDBfile);       //backupDB은 백업 DB파일의 경로

 

     if (originalDB.exists()) {       
      Toast.makeText(this, "백업시작" , 3000) .show();
      
      FileChannel src = new FileInputStream(originalDB).getChannel();         
      FileChannel dst = new FileOutputStream(backupDB).getChannel();          
      dst.transferFrom(src, 0, src.size());         
      src.close();         
      dst.close();
      Toast.makeText(this, "백업끝" , 3000) .show();
  
     }
    }
   }

   catch (Exception e) {

   }  
 }//dbBackup()

 

소스는 여기사이트에 어느분께서 질문올리신거 참고했구요(감사드립니다.)

쭉 진행되다가 아래쪽 "백업시작" 토스트까지만 찍히고 별다른 에러는 안뜨는데 "백업끝"토스트가 찍히지 않네요(복사파일생성도 안됨)

퍼미션은 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 설정했구요