Android递归删除文件和文件夹



[java]  view plain  copy
  1. import java.io.File;  
  2.   
  3. /** 
  4.  * 操作文件帮助类 
  5.  * @author sRoger. 
  6.  */  
  7. public final class OperationFileHelper {  
  8.     /** 
  9.      * 递归删除文件和文件夹 
  10.      * @param file    要删除的根目录 
  11.      */  
  12.     public static void RecursionDeleteFile(File file){  
  13.         if(file.isFile()){  
  14.             file.delete();  
  15.             return;  
  16.         }  
  17.         if(file.isDirectory()){  
  18.             File[] childFile = file.listFiles();  
  19.             if(childFile == null || childFile.length == 0){  
  20.                 file.delete();  
  21.                 return;  
  22.             }  
  23.             for(File f : childFile){  
  24.                 RecursionDeleteFile(f);  
  25.             }  
  26.             file.delete();  
  27.         }  
  28.     }  
  29. }  


Android如何获取文件列表 


有的时候我们的程序需要去对android的指定目录或者全局目录进行遍历获取其中的文件,但是获取文件的时候可能会遇到无法列出文件夹中的文件的问题,这就是我出现的问题,对于某个子文件夹进行获取listFiles()的时候返回为NULL,也就是不允许列出文件夹中内容。这个是由于android中的安全机制的缘故,由于android继承了Linux系统的传统,对于某个特定的目录有用户的权限,一共分为三种--可读,可写,可执行;虽然说我们可以设置某个特定的目录的权限,但是对于目录里面的子目录和子文件都可以进行权限的设置,也就是说出了根目录权限之外,子目录本身的权限也决定了子目录可否访问,这一点我们需要清楚了解,所以我们在判断完了是否是目录之外,我们还需要在进行listFiles()获取File[]数据后判断获取的数组是否为空,如果为空的话,文件夹是不可访问的。样例代码如下:

 http://www.nowamagic.net/librarys/veda/detail/1481

你可能感兴趣的:(Android递归删除文件和文件夹)