在SQLite中删除数据库时遇到困难

时间:2012-10-16 09:57:59

标签: android sqlite

我在我的应用程序中使用SQLite数据库。我想删除/删除数据库但是无法这样做。我检查了数据库的位置,它出现在/data/data/org.secure.sms/数据库,但当我试图删除它,它没有成功。请帮助我。 这是代码:

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();
    }

}

请帮帮我。谢谢。

3 个答案:

答案 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 :(得分:1)

为了删除数据库,这个是代码:

context.deleteDatabase(DATABASE_NAME);

在您的代码中,您提供了完整的路径。

答案 2 :(得分:0)

你错过了file Extension !! 请尝试以下:

String filePath = context.getFilesDir()+ File.separator + "yourDataBaseName.db";