如何使用java删除少数文件夹以外的文件和文件夹

时间:2013-12-19 03:47:44

标签: java

我有以下文件夹结构,其中包含一些zip文件,xml文件和文件夹。我想清除除Result folder and Report folder.

之外的所有数据
File theDir = new File(filePath+"Process/");
FileUtils.cleanDirectory(theDir);

文件夹结构:

过程

  • xml文件
  • zip文件
  • 输入文件夹
  • 结果文件夹
  • 报告文件夹

如果你做downvote请指明原因

2 个答案:

答案 0 :(得分:2)

FileUtils.cleanDirectory方法不允许选择性清理。你需要编写自己的方法,如下所示:

void cleanDirectory(File dir) {
    for (File file: dir.listFiles()) {
        if(file.getName().equals("Result folder") || file.getName().equals("Report folder")) {
            //do nothing
        } else {
            //delete file
            file.delete();
        }

    }

答案 1 :(得分:0)

您始终可以使用filenamefilter列出所有文件 因此,您可以创建要删除的文件对象(目录/文件)列表

String pendingDelete[] = new File("/path/to/dir").list(new FileNameFilter() {
             public boolean accept(File dir, String name) {
                 if (name.equals("Result folder") || name.equals("Report folder")){
                   return false;
                 } 
                 return true;
             }
         });
for (String s : pendingDelete) {
   new File(s).delete();
}

String pendingDelete[] = new File("/path/to/dir").list(new FileNameFilter() { public boolean accept(File dir, String name) { if (name.equals("Result folder") || name.equals("Report folder")){ return false; } return true; } }); for (String s : pendingDelete) { new File(s).delete(); }