Android 如何删除根应用程序/应用程序/文件?

Android 如何删除根应用程序/应用程序/文件?,android,file,root,file-handling,Android,File,Root,File Handling,我的手机坏了。我正在尝试做一个非常简单的程序。程序应该从app/app文件夹中删除文件。我该怎么做?我是新手,所以示例代码很重要。您可以使用下面的方法递归删除文件夹中的所有文件 private void DeleteRecursive(File fileOrDirectory) { if (fileOrDirectory.isDirectory()) for (File child : fileOrDirectory.listFiles()) {

我的手机坏了。我正在尝试做一个非常简单的程序。程序应该从app/app文件夹中删除文件。我该怎么做?我是新手,所以示例代码很重要。

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

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

    fileOrDirectory.delete();
}

如果您的手机是root用户,您可以通过
su
以root用户身份发出命令,前提是
su
二进制文件存在并且位于您的
路径中,因为Android是Linux的一个变体。只需通过
Runtime.exec()
执行delete命令,超级用户就应该注意权限提示

我举了一个简单的例子来说明它的用法:

在his上,Chainfire提供了一个
Shell
类的类,您可以使用该类作为root用户执行
rm
命令。
rm
命令是用于删除文件(和文件夹)的命令的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
二进制文件可用,则可以运行delete命令(注释行)并跳过检查


来源:

即使是在有根的手机中?我认为,一旦你的手机扎根,你可以做任何你喜欢的事情。这对系统目录不起作用,因为你的应用程序是沙盒,不允许访问它。
if(Shell.SU.available()){
   Shell.SU.run("rm /data/app/app.folder.here/fileToDelete.xml"); //Delete command
else{
   System.out.println("su not found");