2012-10-16 55 views
0

我在我的應用程序中使用了SQLite數據庫。我想刪除/刪除數據庫,但無法這樣做。我檢查了數據庫的位置並將它存在於/ data/data /org.secure.sms/databases但當我試圖刪除它,它不成功,請幫助我。 這是代碼:在SQLite中刪除數據庫時遇到困難

public static void DeleteDatabase(Context context) 
{ 
    try 
    { 

    String filePath = context.getFilesDir()+ File.separator + "contactsManager"; 
    String filePath1 = context.getFilesDir()+ File.separator + "database"; 
    String filePath2 = context.getFilesDir()+ File.separator + "databases"; 

    context.deleteDatabase(filePath); 
    context.deleteDatabase(filePath1); 
    context.deleteDatabase(filePath2); 

    File file = new File(filePath); 
    File file1 = new File(filePath1); 

context.deleteFile(file.getName()); 
context.deleteFile(file1.getName()); 
    } 
    catch(Exception e) 
    { 
     Toast.makeText(context,"Exception in DeleteDatabase",Toast.LENGTH_SHORT).show(); 
    } 

} 

請幫助me.Thanks提前。

+0

您能否提供錯誤堆棧? –

回答

2

我用它來刪除我的數據庫,這是從擴展SQLiteOpenHelper的自定義類中刪除的。

private final static String DATABASE_NAME = "pain.db"; 

private static final String DB_PATH = "/data/data/YOUR.PACKAGE.NAME/databases/" + DATABASE_NAME; 


@Override 
    public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) { 

     Log.d("DATABASE UPDATED", "DATABASE UPDATED"); 

     try { 
      File file = new File(DB_PATH); 
      file.delete(); 
     } catch (Exception ex) { 
      ex.printStackTrace(); 
     } 
    } 
1

刪除數據庫,這一個是代碼:

context.deleteDatabase(DATABASE_NAME); 

在你的代碼是提供完整路徑。

+0

先生我已經提供了完整的路徑,但我在logcat中得到這個消息: – user1726619

+0

10-16 15:15:44.578:D /(9319):無法取消鏈接'/data/data/org.secure.sms/files/contactsManager ':沒有這樣的文件或目錄(errno = 2) 10-16 15:15:44.607:D /(9319):無法取消鏈接'/data/data/org.secure.sms/files/database':沒有文件或目錄(errno = 2) – user1726619

+1

@YaqubAhmad:FYI檢查此http://developer.android.com/reference/android/content/ContextWrapper.html#deleteDatabase%28java.lang.String%29 –

0

你缺少file Extension! 請嘗試以下操作:

String filePath = context.getFilesDir()+ File.separator + "yourDataBaseName.db"; 
相關問題