美文网首页
迭代目录中的文件

迭代目录中的文件

作者: 鉴闻俗说 | 来源:发表于2017-07-18 10:56 被阅读0次

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文件名或其中文件名包括中文,会出错,暂时没有找到好的解决办法

相关文章

  • 迭代目录中的文件

    1、迭代目录中的文件 Files中有一方法,它可以产生一个Iterable对象 可以用glob模式来过滤文件 2、...

  • 使用java8API遍历过滤文件目录及子目录及隐藏文件

    1. 使用Files.list()迭代目录及其子目录文件 Files.list()可以迭代目录及其子目录文件 输出...

  • QT 目录

    获取用户目录,目录不在则创建目录。 选择路径(另存为) 多选目录文件 拷贝文件 当前目录下文件名(不迭代)

  • python cookbook学习笔记04

    迭代器和生成器 文本迭代器 代理迭代 io数据操作 文件压缩gzip,bz2 获取相关文件目录 pickle,js...

  • python基础

    相对路径导入 可迭代对象和迭代器 for迭代遍历 生成器 集合 基于通配符搜索文件 找出某一目录下,所有的目录和文...

  • Linux01 - 目录和文件处理命令(施工ing)

    目录 ls [-aldi] [文件或目录]:查看文件或目录中的文件mkdir [-p] [目录]:创建新目录cp ...

  • CentOS 命令

    文件操作: ls ####查看目录中的文件#### ls -F ####查看目录中的文件#### ls -l ##...

  • kotlin 中的 "for" 循环和迭代m

    文章目录场景"for" 循环迭代map总结 场景 kotlin 中的 "for" 循环和迭代 map 与我们熟知的...

  • Ubuntu 基本命令

    1 目录 1.1 切换目录 2 文件 2.1 查看文件 2.1.1 查看目录下的文件 2.1.2 查看文件中的内容...

  • ubuntu文件相关操作

    查看当前目录下的文件数量(不包含子目录中的文件) 查看当前目录下的文件数量(包含子目录中的文件) 注意:R,代表子...

网友评论

      本文标题:迭代目录中的文件

      本文链接:https://www.haomeiwen.com/subject/sdbckxtx.html