2

我想编写一个 Java 应用程序,根据某些命名标准验证文件和目录。该程序将让您选择一个目录并递归分析 - 给出与给定规则不匹配的文件/目录列表。

最终我希望用户能够输入规则,但现在它们将是硬编码的。哦,这需要跨平台。

我对基本的 Java 结构有一定的应用知识,但没有使用库的经验,也没有太多运气为这类事情找到演示/代码示例。

我会喜欢关于什么树开始吠叫的建议,伪代码——任何你觉得有帮助的东西。

编辑:我不想在这里删除任何东西,只是在所选目录中获取违反某些规则(例如,没有空格或特殊字符,没有以大写开头的目录)的任何名称的递归列表。

4

1 回答 1

3

我想使用Commons IO,我认为DirectoryWalker会帮助你。

这是检查和删除“.svn”目录的示例

  public class FileCleaner extends DirectoryWalker {

    public FileCleaner() {
      super();
    }

    public List clean(File startDirectory) {
      List results = new ArrayList();
      walk(startDirectory, results);
      return results;
    }

    protected boolean handleDirectory(File directory, int depth, Collection results) {
      // delete svn directories and then skip
      if (".svn".equals(directory.getName())) {
        directory.delete();
        return false;
      } else {
        return true;
      }

    }

    protected void handleFile(File file, int depth, Collection results) {
      // delete file and add to list of deleted
      file.delete();
      results.add(file);
    }
  }
于 2012-07-18T03:00:50.640 回答