2012-10-16 56 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"; 
相关问题