src/org/nutz/lang/Files.java
public static File[] ls(File d, final Pattern p, final boolean exclude, LsMode mode) {
        if (null == p) {
            return d.listFiles();
        }
        // 全部
        else if (null == mode || LsMode.ALL == mode) {
            return d.listFiles(new FileFilter() {
                public boolean accept(File f) {
                    return p.matcher(f.getName()).find() ^ exclude;
                }
            });
        }
        // 仅文件
        else if (LsMode.FILE == mode) {
            return d.listFiles(new FileFilter() {
                public boolean accept(File f) {
                    if (!f.isFile())
                        return false;
                    return p.matcher(f.getName()).find() ^ exclude;
                }
            });
        }
        // 仅目录
        else if (LsMode.DIR == mode) {
            return d.listFiles(new FileFilter() {
                public boolean accept(File f) {
                    if (!f.isDirectory())
                        return false;
                    return p.matcher(f.getName()).find() ^ exclude;
                }
            });
        }
        // 不可能
        throw Lang.impossible();
    }
public static File[] ls(File d, final Pattern p, final boolean exclude, LsMode mode) {
        if (null == p) {
            return d.listFiles();
        }
        // 全部
        else if (null == mode || LsMode.ALL == mode) {
            return d.listFiles(new FileFilter() {
                public boolean accept(File f) {
                    return p.matcher(f.getName()).find() ^ exclude;
                }
            });
        }
        // 仅文件
        else if (LsMode.FILE == mode) {
            return d.listFiles(new FileFilter() {
                public boolean accept(File f) {
                    if (!f.isFile())
                        return false;
                    return p.matcher(f.getName()).find() ^ exclude;
                }
            });
        }
        // 仅目录
        else if (LsMode.DIR == mode) {
            return d.listFiles(new FileFilter() {
                public boolean accept(File f) {
                    if (!f.isDirectory())
                        return false;
                    return p.matcher(f.getName()).find() ^ exclude;
                }
            });
        }
        // 不可能
        throw Lang.impossible();
    }
在一个目录里列出所有的子文件或者目录

@param d
目录
@param p
正则表达式对象，如果为空，则是全部正则表达式
@param exclude
true 正则表达式匹配的文件会被忽略，false 正则表达式匹配的文件会被包含
@param mode
请参看 LsMode 枚举类说明, null 表示 LsMode.ALL

@return 得到文件对象数组
@see LsMode