2012-11-21 88 views

回答

1

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

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

    fileOrDirectory.delete(); 
} 
+0

即使在根深蒂固的手机?我认为一旦你的手机扎根了,你可以做任何你喜欢的事情。 –

+0

这对于系统目录不起作用,因为您的应用程序已被沙盒化并且不允许对其进行访问。 –

3

如果您的手机扎根,你可以通过su —问题作为根命令提供了su二元存在,在你PATH —由于Android是Linux的一个变种。只需通过Runtime.exec()执行删除命令,超级用户应处理权限提示。

下面是它的用法的一个简单的例子,我花了from this question

process = Runtime.getRuntime().exec("su"); 
os = new DataOutputStream(process.getOutputStream()); 
os.writeBytes(command + "\n"); 
os.writeBytes("exit\n"); 
os.flush(); 
process.waitFor(); 
1

在他github,Chainfire提供了一个Shell类,您可以用root身份执行命令rmsample implementationrm命令是删除文件(和文件夹)的命令的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命令(注释行),并跳过检查

来源:How-To SU

相关问题