迭代目录中的文件

1、迭代目录中的文件

Files中有一方法,它可以产生一个Iterable对象

        //创建一个相对路径,此处是用户当前的工作目录
        final String inDirectory = "";
        Path dir = Paths.get(inDirectory);

        //访问dir目录下的所有根目录下的文件,不包括子文件中的文件
        try (DirectoryStream<Path> entries = Files.newDirectoryStream(dir))
        {
                for (Path entry : entries)
                    System.out.println(entry);
        }

可以用glob模式来过滤文件

       //访问dir目录下的所有根目录下的txt文件,不包括子文件中的文件
        try (DirectoryStream<Path> entries = Files.newDirectoryStream(dir, "*.txt"))
        {
                for (Path entry : entries)
                    System.out.println(entry);
        }

2、访问某个目录的所有子孙成员(子目录,以及子目录下的目录......)

       //访问某个目录的所有子目录,不会到文件
        Files.walkFileTree(dir, new SimpleFileVisitor<Path>()
        {
            public FileVisitResult preVisitDirectory(Path path, BasicFileAttributes attrs)
            {
                System.out.println(path);
                return FileVisitResult.CONTINUE;
            }

            public FileVisitResult visitFileFailed(Path path, IOException exc)
            {
                return FileVisitResult.CONTINUE;
            }
        });

3、ZIP文件系统

        //创建一个相对路径,此处是用户当前的工作目录下的temp.zip
        final String zipName = "temp.zip";
        Path zip = Paths.get(zipName);

        //通过遍历文件树,列出zip文档中的所有文件,包括子目录下的文件
        FileSystem fs = FileSystems.newFileSystem(zip,null);
        Files.walkFileTree(fs.getPath("/"), new SimpleFileVisitor<Path>()
        {
            public FileVisitResult visitFile (Path file, BasicFileAttributes attrs)
            {
                System.out.println(file);
                return FileVisitResult.CONTINUE;
            }
        });

注释:如果zip文件名或其中文件名包括中文,会出错,暂时没有找到好的解决办法

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,274评论 19赞 139
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 101,145评论 9赞 468
  • 部分内容转载自搜狗百科 cmd是command的缩写.即命令提示符(CMD),是在OS / 2 , Windows...
    青冥之上阅读 2,540评论 0赞 24
  • win7 cmd管理员权限设置 net localgroup administrators 用户名 /add 把“...
    f675b1a02698阅读 5,556评论 0赞 11
  • 大千世界无奇不有, 我们生活在地球上, 吃五谷杂粮,生老病死, 这是自然规律。 在这个过程中, 我们经常会碰到很多...
    漂浮的流云阅读 564评论 0赞 0

友情链接更多精彩内容