2011-12-15 4 views
0
내가 API를 사용하는 CopyTo 사용하는 방법을 알고 데이터베이스 폴더에 SQLite는 DB를 복사하고 싶지만 그나마

에서하는 CopyTo API를 사용하려면? 어디로 내 DB 경로 양식 자산 폴더를 작성해야합니까? 그것은 마지막 라인에서 성공을 말했지만 그것을 정의하지 않았다는 것을 잘못 표기 한 것입니까? 나는 대신 우승을해야합니까?방법 폰갭

답변

1

File API는 자산 디렉토리 내의 파일에 액세스 할 수 없습니다. 플러그인을 작성해야합니다.

+0

당신을 감사 사이먼 내가 SQLite는 DB를 만들고 싶었과에 복사 첫 번째 실행에서 데이터베이스 forlder. 그래서 내가 유일한 방법은 응용 프로그램의 첫 번째 실행에서 sqlite로 XML이나 다른 종류의 db (lawnchair)을 가져 오는 것입니다 참조하십시오. 내가 맞습니까? –

+0

거기 phonegap에 미리 저장된 DB를 사용하는 방법은 무엇입니까? –

1

내 주요 활동에 (자바 코드를) 일부 코드를 추가하여 한 :

import java.io.File; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.OutputStream; 

    import android.app.Activity; 
    import android.os.Bundle; 
    import android.util.Log; 
    import android.widget.EditText; 

    public class main extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     String pName = this.getClass().getPackage().getName(); 
     try 
     { 
     this.copy("Databases.db","/data/data/"+pName+"/app_database/"); 
     } 

     catch (IOException e) 


    { 
     e.printStackTrace(); 
    } 

    } 

    void copy(String file, String folder) throws IOException 
    { 

     File CheckDirectory; 
     CheckDirectory = new File(folder); 
     if (!CheckDirectory.exists()) 
     { 
      CheckDirectory.mkdir(); 
     } 

     InputStream in = getApplicationContext().getAssets().open(file); 
     OutputStream out = new FileOutputStream(folder+file); 

     // Transfer bytes from in to out 
     byte[] buf = new byte[1024]; 
     int len; while ((len = in.read(buf)) > 0) out.write(buf, 0, len); 
     in.close(); out.close(); 

    } 
    } 

소스 : http://gauravstomar.blogspot.com/2011/08/prepopulate-sqlite-in-phonegap.html

+1

답변 해 주셔서 감사합니다. 귀하의 블로그 게시물을 Google 그룹에 대한 많은 답변에 붙여 넣을 예정입니다. –