2 votes

comment accéder au chemin d'accès d'une base de données ou d'un fichier d'une autre application sous Android ?

Est-il possible d'obtenir le chemin du fichier de la base de données dans Android au chemin : "/data/system/accounts.db".

Dans mon application, je veux utiliser cette base de données, mais je n'arrive pas à obtenir son chemin. Si je fais un codage en dur et supprime le fichier, je peux le faire. Mais je veux y accéder en tant que base de données afin de pouvoir supprimer la table.

Toute aide serait appréciable.

code que j'ai essayé :

    private SQLiteDatabase db;
    File dbFile = mContext.getDatabasePath("accounts.db");
    if (dbFile.exists())
    {
        db = SQLiteDatabase.openOrCreateDatabase(dbFile, null);
        db.execSQL("DROP TABLE IF EXISTS accounts");
        db.setVersion(db.getVersion()+1);
    }

4voto

Mathias Lin Points 16035

Vous pouvez utiliser android.os.Environment.getDataDirectory() pour obtenir le chemin d'accès au répertoire de données. N'utilisez pas le mContext.getDatabasePath si la base de données n'est pas dans le répertoire de données de votre application.

Voir aussi Est-il possible de déplacer la base de données interne vers la carte SDCard ?

si vous voulez faire une recherche, faites une recherche récursive dans les fichiers via quelque chose comme ceci :

private void searchFile(String startingPoint) {

    Files[] files = File("/data").listFiles(); 
    for (File f:files) {
        if (f.isDirector) searchFile(f);
        else if (f.getName().equals("accounts.db")) {
            // delete db here...
            // and exit the search here...
        }
    } 
}

et vérifiez s'il contient le fichier accounds.db. Si vous atteignez un autre sous-répertoire, appelez votre propre fonction de manière récursive avec le sous-dossier comme point de départ, et ainsi de suite.....

Mais assurez-vous d'avoir un accès en lecture au dossier pertinent que vous avez défini comme point de départ pour lancer la recherche.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X