Android Java中的递归文件夹删除(API17)

时间:2017-08-08 03:41:53

标签: java android

我是Java的新手,我想知道是否有办法删除可能包含某些文件的文件夹,就像" rm -rf目录/& #34;在命令行中。

这就是我正在做的事情。

public static boolean checkUnzippedExistence(String deleteKeyword) {
    List<String> foldersList = new ArrayList<String>();
    String absPath = Environment.getExternalStorageDirectory().getPath();
    File[] files = new File(absPath).listFiles();
    boolean existence = false;
    if (files != null) {
        for (int i = 0; i < files.length; i++) {
            if (files[i].isDirectory() && files[i].getName().contains(deleteKeyword)) {
                //some method/function to delete
            }
        }
        existence = true;
    }
    return existence;
}

提前致谢。

2 个答案:

答案 0 :(得分:1)

您可以使用Apache Commons FileUtils。它包含可用于文件操作的强大实用程序方法:

Apache Commons的Gradle依赖:

compile group: 'commons-io', name: 'commons-io', version: '2.4'

答案 1 :(得分:0)

下面的代码将帮助您确定给定的文件是否符合您的条件。

public static boolean checkUnzippedExistence(String deleteKeyword) {
    List<String> foldersList = new ArrayList<String>();
    String absPath = Environment.getExternalStorageDirectory().getPath();
    File[] files = new File(absPath).listFiles();
    deleteDirectory(files)
}



private boolean deleteDirectory(File[] files) {
      if (files == null) {
          return true;
      }
      for(int i=0; i<files.length; i++) {
         if(files[i].isDirectory()) {
           deleteDirectory(files[i]);
         }
         else {
           files[i].delete();
         }
      }
    }
    return( path.delete() );
  }