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"/> 설정했구요
dst.transferTo(0, src.size(), src); 이걸로 해보세요