现在我正在使用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
执行相同的操作。
谢谢!
答案 0 :(得分:3)
你错过了/
来自
File baseDir = new File("data/data/" + pkgName + "/databases");
应该是
File baseDir = new File("/data/data/" + pkgName + "/databases");
如果您有上下文,我会使用getDatabasePath
(Here文档),它返回数据库的绝对路径。
File file = context.getDatabasePath("DATABASE_NAME");
如果您想将所有文件列入databases
File parentFile = context.getDatabasePath("DATABASE_NAME").getParent();
if (parentFile != null) {
File[] dbs = parentFile.listFiles();
}