Soru & Cevap

Assets folderdaki Database dosyası nasıl kopyalanır?

28.06.2014 - 08:54

Assets folderdaki Database dosyasının nasıl kopyalandığına dair stackoverflow sitesinde bir çok kod inceledim fakat çoğu kafa karıştırıcıydı. Amacım sadece programım açıldığı anda uygulamanın databasinin olup olmadığını kontrol edecek ve database mevcut değilse assets folderdan database i kopyalayacak. Bu konuda yardımcı olabilirmisiniz?

17 Görüntülenme

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

picture-1372-1408467635.jpg
ahmtbrk
28.06.2014 - 12:37

database var mı yok mu şöyle sorgulayabilirsin.

[code]

File dbtest =new File("/data/data/yourpackagename/databases/dbfilename");

if(dbtest.exists())

{ // varsa     }

else { // yoksa }

[/code]

yourpackagename kısmına package adını , dbfilename adınada db adını yazacaksın helperdeki.

db kopyalamak için ise şu method

[code]

private static String DB_PATH = "/data/data/YOUR_PACKAGE/databases/";

private static String DB_NAME = "myDBName";

private void copyDataBase() throws IOException{

// senin local databaseni okumak için inputstream.(assetsteki)

InputStream myInput = myContext.getAssets().open(DB_NAME);

// yeni db'nin kopyalanacağı path

String outFileName = DB_PATH + DB_NAME;

// yeni boş db'i oluştur ve eski db yi üstüne yaz

OutputStream myOutput = new FileOutputStream(outFileName);

byte[] buffer = new byte[1024];

int length;

while ((length = myInput.read(buffer))>0){

myOutput.write(buffer, 0, length);

}

myOutput.flush();

myOutput.close();

myInput.close();

}

[/code]