用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

打印目录和文件--摘自Java编程思想

2018-11-13 作者: TravelLight举报

[java]代码库

//需要格式打印类  PPrint.java
public class Directory {
     
    public static File[] local(File dir,final String regex) {
        return dir.listFiles(new FilenameFilter() {
            private Pattern pattern = Pattern.compile(regex);
            @Override
            public boolean accept(File dir, String name) {
                // TODO Auto-generated method stub
                return pattern.matcher(new File(name).getName()).matches();
            }
        });
    }
    @SuppressWarnings("static-access")
    public static void main(String[] args) {
        if(args.length == 0) {
            System.out.println("===============AllFile=============");
            System.out.println(new TreeInfo().walk(".",RegexString.SUFFIX_ALL));//,RegexString.SUFFIX_ALL表示正则表达式
            System.out.println("===============.java===============");
            System.out.println(new TreeInfo().walk(".",RegexString.SUFFIX_JAVA));
            System.out.println("===============.class===============");
            System.out.println(new TreeInfo().walk(".",RegexString.SUFFIX_CLASS));
              
        }else {
            for(String arg : args) {
                System.out.println(new TreeInfo().walk(arg,".*"));
            }
        }
    }
    public static class TreeInfo implements Iterable<File>{
        public List<File> files = new ArrayList<File>();//文件
        public List<File> dirs = new ArrayList<File>();//目录
         
        @Override
        public Iterator<File> iterator() {
            // TODO Auto-generated method stub
            return files.iterator();
        }
        void addAll(TreeInfo other) {//加入集合
            files.addAll(other.files);
            dirs.addAll(other.dirs);
        }
        public String toString() {
            return "dirs: " + PPrint.pformat(dirs) + "\n\nfiles: " + PPrint.pformat(files);
        }
        public static TreeInfo walk(String start,String regex) {//文件目录,正则表达式(文件格式)
            return recurseDirs(new File(start),regex);
        }
        private static TreeInfo recurseDirs(File startDir, String regex) {
            // TODO Auto-generated method stub
            TreeInfo result = new TreeInfo();
            for (File item : startDir.listFiles()) {
                if(item.isDirectory()) {//判断是否是目录
                    result.dirs.add(item);
                    result.addAll(recurseDirs(item, regex));//递归调用自己
                }else {
                    if(item.getName().matches(regex))//判断符合正则
                        result.files.add(item);
                }
            }
            return result;
        }
    }
}


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...