编写java程序以递归测试文件命名标准

时间:2012-07-18 02:54:22

标签: java file-io recursion directory filenames

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

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

我有基本Java构造的工作知识,但没有图书馆的经验,并且没有太多运气找到这类事情的演示/代码示例。

我很想知道什么树开始狂吠,伪代码 - 无论你觉得什么都会有所帮助。

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

1 个答案:

答案 0 :(得分:3)

我想使用Commons IO,我认为DirectoryWalker会对您有帮助。

以下是检查和删除“.svn”dir

的示例
  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);
    }
  }