안녕하세요


외부 db를 내부 data영역에 복사하는것 질문을 드립니다..


앞서서 검색을 해보았는데... 똑같이 잘안되네요....


다음은 코드입니다.


 @Override
	public void onCreate(SQLiteDatabase db)
	{
		String dir= "/data/data/"+mContext.getPackageName();
		File folder = new File(dir+"/databases");
		if(!folder.exists())
			folder.mkdirs();
		
		File outfile = new File(dir+"/databases/"+Config.DB_FILE_NAME);
		
		if(!outfile.exists()) 
		{
			AssetManager assetManager = mContext.getResources().getAssets();
			try
            {
	            InputStream is = assetManager.open(Config.DB_FILE_NAME);
	            OutputStream os = new FileOutputStream(outfile);
	            
	            byte[] buffer = new byte[1024];
	            int len;
	            while((len = is.read(buffer)) > 0)
	            {
	            	os.write(buffer, 0, len);
	            }
	            os.flush();
	            os.close();
	            is.close();
            }
            catch(IOException e)
            {
        		e.printStackTrace();
            	return;
            } 
		}
	}


SQLiteOpenHelper 상속받아서 쓰고있는데 의문점이 몇가지드는게


1. 앱을 삭제하였는데... 파일이 그대로 있다고 인지를 해버림


2. 복사를 하였지만 데이터를 가져오는 쿼리를 날리니 그런 테이블은 존재하지 않는다고 나옴...


데이터베이스 잘아시는분 도움좀 부탁드립니다.


profile

개발자는 기계가 아닙니다.