2012-11-21 129 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

相關問題