如何用root读取数据/数据中的写文件

时间:2015-05-30 09:36:53

标签: android root

现在我正在使用File检查某些文件或将其删除 with root 。这是代码:

String tempName = null;
    boolean hasFound = false;
    File baseDir = new File("data/data/" + pkgName + "/databases");
    if (!baseDir.exists() || !baseDir.isDirectory()) {
        listener.onExecuteFiled();
    } else {
        File[] filelist = baseDir.listFiles();
        for (File file : filelist) {
            if (!file.isDirectory()) {
                tempName = file.getName();
                if (tempName.toLowerCase().contains("wegamedb")) {
                    if (!file.delete()) {
                        listener.onExecuteFiled();
                        return;
                    } else {
                        hasFound = true;
                    }
                }
            }
        }

        if (hasFound) {
            listener.onExecuteSuccess();
        } else {
            listener.onExecuteFiled();
        }
    }

但是baseDir.listFiles();返回null,所以我想知道如何获得root权限来运行这些代码?我可以使用su运行shell但不知道如何对File执行相同的操作。

谢谢!

1 个答案:

答案 0 :(得分:3)

你错过了/来自

File baseDir = new File("data/data/" + pkgName + "/databases");

应该是

File baseDir = new File("/data/data/" + pkgName + "/databases");

如果您有上下文,我会使用getDatabasePathHere文档),它返回数据库的绝对路径。

File file = context.getDatabasePath("DATABASE_NAME");

如果您想将所有文件列入databases

File parentFile = context.getDatabasePath("DATABASE_NAME").getParent();
if (parentFile != null) { 
     File[] dbs = parentFile.listFiles();
}