我想编写一个Java应用程序,根据某些命名标准验证文件和目录。该程序将允许您选择一个目录并进行递归分析 - 给出一个与给定规则不匹配的文件/目录列表。
最终我希望用户能够输入规则,但是现在它们将被硬编码。哦,这需要跨平台。
我有基本Java构造的工作知识,但没有图书馆的经验,并且没有太多运气找到这类事情的演示/代码示例。
我很想知道什么树开始狂吠,伪代码 - 无论你觉得什么都会有所帮助。
编辑:我不是要在这里删除任何内容,只是获取任何违反某些规则的名称的递归列表(例如,没有空格或特殊字符,没有以大写字母开头的目录)选择的目录。
答案 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);
}
}