public static int visitFile(File f, FileVisitor fv, FileFilter filter) {
    """
	一个 Vistor 模式的目录深层遍历
	
	@param f
	要遍历的目录或者文件，如果是目录，深层遍历，否则，只访问一次文件
	@param fv
	对文件要进行的操作
	@param filter
	遍历目录时，哪些文件应该被忽略
	@return 遍历的文件个数
    """
        int re = 0;
        if (f.isFile()) {
            fv.visit(f);
            re++;
        } else if (f.isDirectory()) {
            File[] fs = null == filter ? f.listFiles() : f.listFiles(filter);
            if (fs != null)
                for (File theFile : fs)
                    re += visitFile(theFile, fv, filter);
        }
        return re;
    }
public static int visitFile(File f, FileVisitor fv, FileFilter filter) {
        int re = 0;
        if (f.isFile()) {
            fv.visit(f);
            re++;
        } else if (f.isDirectory()) {
            File[] fs = null == filter ? f.listFiles() : f.listFiles(filter);
            if (fs != null)
                for (File theFile : fs)
                    re += visitFile(theFile, fv, filter);
        }
        return re;
    }
public static int visitFile ( File f , FileVisitor fv , FileFilter filter ) { int re = 0 ; if ( f . isFile ( ) ) { fv . visit ( f ) ; re ++ ; } else if ( f . isDirectory ( ) ) { File [ ] fs = null == filter ? f . listFiles ( ) : f . listFiles ( filter ) ; if ( fs != null ) for ( File theFile : fs ) re += visitFile ( theFile , fv , filter ) ; } return re ; }
一个 Vistor 模式的目录深层遍历

@param f
要遍历的目录或者文件，如果是目录，深层遍历，否则，只访问一次文件
@param fv
对文件要进行的操作
@param filter
遍历目录时，哪些文件应该被忽略
@return 遍历的文件个数
一个 Vistor 模式的目录深层遍历