4

我的手机已经root了。我正在尝试做一个非常简单的程序。程序应该从 app/app 文件夹中删除文件。我怎样才能做到这一点?我是新手,所以示例代码很有价值。

4

3 回答 3

3

如果您的手机已获得 root 权限,则您可以以 root 身份发出命令——前提susu二进制文件存在并且在您的手机中PATH——因为 Android 是 Linux 的一个变体。只需通过 执行删除命令Runtime.exec(),超级用户应注意权限提示。

这是我从这个问题中得到的一个简单的用法示例:

process = Runtime.getRuntime().exec("su");
os = new DataOutputStream(process.getOutputStream());
os.writeBytes(command + "\n");
os.writeBytes("exit\n");
os.flush();
process.waitFor();
于 2012-11-21T09:08:12.200 回答
1

您可以使用以下方法递归删除文件夹中的所有文件。

private void DeleteRecursive(File fileOrDirectory) {
    if (fileOrDirectory.isDirectory())
        for (File child : fileOrDirectory.listFiles())
        {
            child.delete();
            DeleteRecursive(child);
        }

    fileOrDirectory.delete();
}
于 2012-11-21T09:00:50.967 回答
1

在他的github 上,Chainfire 提供了一个类的示例实现,您可以使用它以rootShell身份执行命令。rmrm命令是用于删除文件(和文件夹)的命令的 Linux 变体。

代码片段:

if(Shell.SU.available()){
   Shell.SU.run("rm /data/app/app.folder.here/fileToDelete.xml"); //Delete command
else{
   System.out.println("su not found");

或者,如果您确定su二进制文件可用,您可以运行删除命令(注释行)并跳过检查

来源:如何苏

于 2013-01-20T20:50:54.137 回答