首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用SimpleFileVisitor遍历目录树以查找除两个子目录之外的所有.txt文件

可以通过以下步骤实现:

  1. 导入必要的Java类和包:
代码语言:txt
复制
import java.io.IOException;
import java.nio.file.FileVisitResult;
import java.nio.file.FileVisitor;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.SimpleFileVisitor;
import java.nio.file.attribute.BasicFileAttributes;
  1. 创建一个继承自SimpleFileVisitor的自定义文件访问器类:
代码语言:txt
复制
public class TxtFileVisitor extends SimpleFileVisitor<Path> {
    @Override
    public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
        if (file.toString().endsWith(".txt")) {
            System.out.println(file);
        }
        return FileVisitResult.CONTINUE;
    }

    @Override
    public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {
        if (dir.getFileName().toString().equals("子目录1") || dir.getFileName().toString().equals("子目录2")) {
            return FileVisitResult.SKIP_SUBTREE;
        }
        return FileVisitResult.CONTINUE;
    }
}
  1. 在主程序中使用该文件访问器来遍历目录树:
代码语言:txt
复制
public class Main {
    public static void main(String[] args) throws IOException {
        Path rootDir = Paths.get("根目录的路径");

        TxtFileVisitor fileVisitor = new TxtFileVisitor();
        Files.walkFileTree(rootDir, fileVisitor);
    }
}

在上述代码中,你需要将"根目录的路径"替换为实际的根目录路径,"子目录1"和"子目录2"替换为需要排除的子目录名称。

这段代码会遍历指定的根目录及其子目录,对于每个文件,如果是以".txt"结尾的文件,则输出文件路径。对于每个目录,在进入该目录之前,会检查目录名称是否为需要排除的子目录,如果是,则跳过该子目录及其子目录的遍历。

这个方法适用于需要遍历目录树并查找指定类型文件的场景,比如查找所有的.txt文件。你可以根据实际需求进行修改和扩展。

腾讯云相关产品和产品介绍链接地址:

  • 对象存储(COS):腾讯云提供的高可靠、低成本的云端存储服务,可用于存储和管理文件、图片、视频等各种类型的数据。
  • 云服务器(CVM):腾讯云提供的弹性计算服务,可快速创建和管理云服务器实例,支持多种操作系统和应用场景。
  • 云数据库 MySQL 版(CDB):腾讯云提供的高性能、可扩展的云数据库服务,适用于各种规模的应用程序。
  • 人工智能平台(AI):腾讯云提供的全面的人工智能服务,包括语音识别、图像识别、自然语言处理等功能,可用于构建智能化的应用程序。
  • 物联网开发平台(IoT):腾讯云提供的物联网开发和管理平台,可帮助用户快速构建和部署物联网解决方案。
  • 云函数(SCF):腾讯云提供的事件驱动的无服务器计算服务,可帮助用户在云端运行代码,无需关心服务器管理和维护。

请注意,以上仅为腾讯云的一些相关产品,其他厂商也提供类似的产品和服务。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

使用Shell脚本遍历子目录所有文件方法

最近博客进行了搬家,CDN源发生改变,想着在CDN上将博客所有图片刷新预热一遍,那么问题来了,刷新预热需要得到所有图片地址,于是直接使用Shell脚本递归遍历wp-content/uploads目录先得到图片文件路径...创建Shell脚本 使用vi编辑器,先创建一个vi traveDir.sh文件,复制下面的脚本代码: #!.../traveDir.sh /xxx/wp-content/uploads即可,xxx请修改为您站点绝对路径。如果您想要导出为.txt文本,直接使用>>流操作即可。 #导出为.txt ..../traveDir.sh /xxx/wp-content >> 1.txt 后续操作 导出文件路径可能是/data/wwwroot/xiaoz.me/wp-content/uploads//2019/...总结 脚本批量导出文件路径 文本工具将站点根目录批量替换为自己域名 提交URL刷新 脚本比较简单,网上一搜一大把,此文参考了:使用Shell遍历目录及其子目录所有文件方法

1.6K20

Java7 新特性 —— java.nio.file 文件操作

Files.delete(dir); return FileVisitResult.CONTINUE; } }); } } 删除目录意味着要遍历每个子目录文件...(); // 在访问目录中条目之后在目录上运行,包括所有子目录 java.nio.file.SimpleFileVisitor 提供了所有方法默认实现,因此在匿名内部类中,我们只需要重写 visitFile...FileSystem 生成 在下面这个例子中,delTxtFiles() 作为一个单独任务执行,该任务将遍历整个目录并删除以 .txt 结尾所有文件,WatchService 会对文件删除做出反应...,WatchService 只会监视给定目录,并不包含其下所有子目录所有本例中如果 test 下子目录还有其他 .txt 结尾文件,并不会触发 WatchService。...模式有两个选项:glob 和 regex,glob 比较简单,功能也很强大,这里主要介绍 glob Path test = Paths.get("test"); // 查找当前目录及其子目录所有.tmp

1.1K30
  • Java:前程似锦 NIO 2.0

    接口可以非常方便地查找目录(符合某种规则文件,比如说我们要查找 chenmo 目录 txt 后缀文件,代码示例如下: // 相对路径 Path dir = Paths.get("chenmo...DirectoryStream( 目录流,),第一个参数为目录,第二个参数为 glob 表达式,比如 *.txt 表示所有 txt 后缀文件。...3)DirectoryStream 被称为目录流,允许方便地使用 for-each 结构来遍历目录。 03、处理目录 目录意味着一个目录里既有文件也有子目录,也可能都没有,也可能有其一。...NIO 2.0 可以很方便地遍历一颗目录,并操作符合条件文件;这其中关键一个方法就是 Files 类 walkFileTree,其定义如下: public static Path walkFileTree...,它实现起来非常复杂,要实现 5 个方法呢,但幸好 JDK 设计者提供了一个默认实现类 SimpleFileVisitor,如果我们只想从目录中找到 txt 后缀文件,可以这样做: // 相对路径

    76530

    第九节 netty前传-NIO 补充Path和File

    Files.walkFileTree()方法用于递归遍历目录功能。参数包含Path实例和FileVisitor作为参数。...SKIP_SIBLINGS意味着文件遍历应该继续但不访问此文件目录任何兄弟。 SKIP_SUBTREE表示文件遍历应该继续但不访问此目录条目。...//TERMINATE表示文件遍历应立即终止。 //SKIP_SIBLINGS意味着文件遍历应该继续但不访问此文件目录任何并列文件。...} }); } catch(IOException e){ e.printStackTrace(); } /** *Files.walkFileTree()也可用于删除包含其中所有文件子目录目录...通过浏览所有目录并删除每个目录 *中所有文件(在visitFile()内部,然后删除目录本身(在postVisitDirectory() *内),您可以删除包含所有子目录文件目录

    77340

    Java:前程似锦 NIO 2.0

    接口可以非常方便地查找目录(符合某种规则文件,比如说我们要查找 chenmo 目录 txt 后缀文件,代码示例如下: // 相对路径Path dir = Paths.get("chenmo...DirectoryStream( 目录流,),第一个参数为目录,第二个参数为 glob 表达式,比如 *.txt 表示所有 txt 后缀文件。...3)DirectoryStream 被称为目录流,允许方便地使用 for-each 结构来遍历目录。 03、处理目录 目录意味着一个目录里既有文件也有子目录,也可能都没有,也可能有其一。...NIO 2.0 可以很方便地遍历一颗目录,并操作符合条件文件;这其中关键一个方法就是 Files 类 walkFileTree,其定义如下: public static Path walkFileTree...,它实现起来非常复杂,要实现 5 个方法呢,但幸好 JDK 设计者提供了一个默认实现类 SimpleFileVisitor,如果我们只想从目录中找到 txt 后缀文件,可以这样做: // 相对路径

    39210

    Python之文件查找模块fnmatch、glob及实际案例

    在Python自动化运维开发过程中,经常会有查找各种文件需求;那么,本文将介绍如何使用Python查找特定类型文件,包括使用字符串匹配文件标准库fnmatch和glob,还会介绍遍历目录函数...fnmath和glob 三、使用os.walk遍历目录 前面的例子都是查找某个目录文件并通过模式匹配去选择自己需要文件类型在实际工作过程中,更有可能遇到查找某个目录及其子目录所有文件...;例如,查找某个目录及其子目录所有的图片文件查找某个目录及其子目录下最大十个文件;对于这类需求,可以使用OS模块walk函数。...函数遍历目录并找到目录所有相关文件,下面再来看几个更加实际需求 1)找到某个目录子目录下最大十个文件; 2)找到某个目录子目录下最老十个文件; 3)找到某个目录子目录下,所有文件名中包含“...更加通用需求是,找到某个目录中,部分特殊目录以外,其他目录某些文件

    1.8K10

    Java8编程实战-nio.file新文件IO API

    看一下文件操作两个基本组件: 文件或者目录路径; 文件本身。...删除目录方法实现依赖于 Files.walkFileTree(),“walking” 目录意味着遍历每个子目录文件。...要获取目录全部内容流,请使用 Files.walk()。 文件系统 为了完整起见,我们需要一种方法查找文件系统相关其他信息。...如果需要监视整个目录,必须在整个每个子目录上放置一个 Watchservice。 文件查找 粗糙方法,在 path 上调用 toString(),然后使用 string 操作查看结果。...单 * 表示“任何东西”,然后是一个点,然后大括号表示一系列可能性—我们正在寻找 .tmp 或 .txt 结尾东西 regex 如果问题更复杂,可以使用 regex 文件读写 如果一个文件很“小”

    54710

    Java8NIO新文件IO到底有多好用?

    看一下文件操作两个基本组件: 文件或者目录路径; 文件本身。...出于某种原因,它们没有包含删除目录相关方法 删除目录方法实现依赖于 Files.walkFileTree(),“walking” 目录意味着遍历每个子目录文件。...要获取目录全部内容流,请使用 Files.walk()。 文件系统 为了完整起见,我们需要一种方法查找文件系统相关其他信息。...如果需要监视整个目录,必须在整个每个子目录上放置一个 Watchservice。 文件查找 粗糙方法,在 path 上调用 toString(),然后使用 string 操作查看结果。...单 * 表示“任何东西”,然后是一个点,然后大括号表示一系列可能性—我们正在寻找 .tmp 或 .txt 结尾东西 regex 如果问题更复杂,可以使用 regex 文件读写 如果一个文件很“小”

    48820

    python 遍历toast msg文本背景简易语法介绍1. 查找目录所有java文件查找Java文件Toast在对应行中找出对应id使用id在String中查找对应toast提示信息。

    背景 最近有个简单迭代需求,需要统计下整个项目内Toastmsg, 这个有人说直接快捷键查找下,但这里比较坑爹是项目中查出对应有1000多处。...几乎是边查文档编写,记录写编写过程: 查找目录所有java文件 查找Java文件中含有Toast相关行 在对应行中找出对应id 使用id在String中查找对应toast提示信息。...查找目录所有java文件 这个我是直接copy网上递归遍历,省略。...查找Java文件Toast 需要找出Toast特征,项目中有两个Toast类 BannerTips和ToastUtils 两个类。 1.先代码过滤对应行。...在对应行中找出对应id 使用id在String中查找对应toast提示信息。 最后去重。 最后一个比较简单,可以自己写,也可以解析下xml写。

    3.9K40

    轻轻松松用 Python 定位特定类型文件

    本文字数:2433 字 阅读本文大概需要:6 分钟 写在之前 今天文章是介绍如何用 Python 去定位特定类型文件,会讲到用字符串匹配文件名定位特定文件以及顺带介绍一下遍历目录函数,通过今天这一部分以及之前文章讲到文件获取属性操作...遍历目录 再上一节中我们都是查找某个目录文件然后通过匹配去定位自己需要文件类型。但是在实际应用过程中我们更可能遇到是某个目录及其子目录所有文件。...比如查找某个目录及其子目录所有txt 文件等等,对于这类需求,我们可以使用 os 模块下「walk」函数。...walk 函数遍历某个目录及其子目录,对于每一个目录,walk 返回一个三元组,依次是「当前目录」,「当前目录子目录」,「当前目录文件列表」。...下面我们来演示一下 os.walk 函数用法,做一个小练习,来遍历一下 /root/rocky0429 目录及其子目录所有 txt 和 图片文件: import os import fnmatch

    2.4K30

    Linux 常用命令总结

    ls -a 列出目录所有文件,包含.开始隐藏文件 ls -A 列出.及..其它文件 ls -r 反序排列 ls -t 文件修改时间排序 ls -S 文件大小排序 ls -h 易读大小显示...如果省略参数,则返回所有信息。whereis 及 locate 都是基于系统内建数据库进行搜索,因此效率很高,而find则是遍历硬盘查找文件。 常用参数: -b 定位可执行文件。...pwd) locate pwd 例如:搜索 etc 目录所有 sh 开头文件 locate /etc/sh 例如:查找 /var 目录下, reason 结尾文件 locate -r...,可以使用-newer选项 例如:查找 48 小时内修改过文件 find -atime -2 例如:在当前目录查找 .log 结尾文件。...常用参数: -c 当发生改变时,报告处理信息 -R 处理指定目录以及其子目录所有文件 权限范围: u :目录或者文件的当前用户 g :目录或者文件的当前群组 o :除了目录或者文件的当前用户或群组之外用户或者群组

    56210

    不服来战!这20类500个常用命令参数你一定记不到50%

    : ls -a 列出目录所有文件,包含.开始隐藏文件 ls -A 列出.及..其它文件 ls -r 反序排列 ls -t...文件修改时间排序 ls -S 文件大小排序 ls -h 易读大小显示 ls -l 除了文件之外,还将文件权限、所有者、文件大小等信息详细列出来...如果省略参数,则返回所有信息。whereis及locate都是基于系统内建数据库进行搜索,因此效率很高,而find则是遍历硬盘查找文件。...目录所有sh开头文件 locate /etc/sh (3)查找/var目录下,reason结尾文件 locate -r '^/var....-newer log2017.log 使用depth选项: depth选项可以使find命令向磁带上备份文件系统时,希望首先备份所有文件,其次再备份子目录文件

    96380

    转载Java NIO中Files类使用

    Path对象是需要遍历目录,FileVistor则会在每次遍历中被调用。...如果不需要处理每个方法,那么可以继承他默认实现类SimpleFileVisitor,它将所有的接口做了空实现。...visitFile()会在整个遍历过程中每次访问文件都被调用。他不是针对目录,而是针对文件。visitFileFailed()调用则是在文件访问失败时候。例如,当缺少合适权限或者其他错误。...SKIP_SUBTREE表示继续访问,但是不需要访问该目录子目录。这个枚举值仅在preVisitDirectory()中返回才有效。如果在另外几个方法中返回,那么会被理解为CONTINE。...Files.delete()只用用于删除一个空目录。我们通过遍历目录,然后在visitFile()接口中三次所有文件,最后在postVisitDirectory()内删除目录本身。

    1.1K20

    Linux常用命令大全(整理自用)

    ls -A 列出.及..其它文件 ls -r 反序排列 ls -t 文件修改时间排序 ls -S 文件大小排序 ls -h 易读大小显示 ls -l 除了文件之外,还将文件权限、所有者、...rm [选项] 文件… 实例 删除任何 .log 文件,删除前逐一询问确认: rm -i *.log 删除 test 子目录子目录所有档案删除,并且不用一一确认: rm -rf test 删除以 -...如果省略参数,则返回所有信息。whereis 及 locate 都是基于系统内建数据库进行搜索,因此效率很高,而find则是遍历硬盘查找文件。 常用参数 -b 定位可执行文件。...pwd) locate pwd 搜索 etc 目录所有 sh 开头文件 locate /etc/sh 查找 /var 目录下, reason 结尾文件 locate -r '^/var....常用参数 -c 当发生改变时,报告处理信息 -R 处理指定目录以及其子目录所有文件 权限范围 u :目录或者文件的当前用户 g :目录或者文件的当前群组 o :除了目录或者文件的当前用户或群组之外用户或者群组

    2.3K10

    使用Java API进行tar.gz文件文件夹压缩解压缩

    如果您阅读完本文觉得对您有帮助的话,请给我一个赞,您支持是我不竭创作动力! 一、将两个文件打包到tar.gz 下面的这个例子是将2个文件打包为tar.gz压缩文件。...可以使用如下命令查看tar包里面包含文件。...二、将一个文件夹压缩为tar.gz 下面的例子将一个文件夹,包含其子文件文件子目录,打包为tar,并使用gzip进行压缩。...其核心原理是:使用到Files.walkFileTree依次遍历文件目录文件,将其一个一个添加到TarArchiveOutputStream.输出流。...GzipCompressorOutputStream(buffOut); TarArchiveOutputStream tOut = new TarArchiveOutputStream(gzOut)) { //遍历文件目录

    7.9K31

    windows批处理命令大全「建议收藏」

    例如“DEL/AR *.*”表示删除当前目录所有只读文件,“DEL/A-S *.*”表示删除当前目录系统文件以外所有文件 del /S /Q 目录 或用:rmdir /s /Q 目录 /S删除目录目录所有子目录文件...新文件,注:2st.txt文件头要空三排,参数:/b指二进制文件,/a指ASCLL格式文件 xcopy 要复制文件目录 目标地址目录名 复制文件目录,用参数/Y将不提示覆盖相同文件 replace...删除父目录文件 文件删除安全方法:del 1.txt /p del *.bak 删除所有的备份文件 del fig*.* del .删除当前目录文件; deltree 子目录名称...查找当前目录所有子目录(不包含文件); dir命令选择项: dir[文件名] [选择项] dir windows/w 只显示文件名 dir windows/w/l 只显示小写字母文件...显示出目录所有文件 dir c:\ /s 显示c盘中根目录子目录所有文件; dir c:.txt /s C盘查找 1.txt文件 dir c:\windows\system32

    2K20

    Linux命令行:find26个用法示例

    列出当前目录子目录所有文件 这个命令会列出当前目录以及子目录所有文件。 $ find . ./abc.txt ./subdir ./subdir/how.php ....限制目录查找深度 find 命令默认会递归查找整个目录,而这非常消耗时间和资源。好在目录查找深度可以手动指定。例如我们只想查找一到两层以内子目录,可以通过 maxdepth 选项来指定。...反向查找 除了查找满足条件文件之外,我们还可以查找不满足条件所有文件。当我们知道要在查找中排除哪些文件时,这个选项就能发挥作用了。 $ find ..../cool.php 上面的命令查找所有 .php 结尾或者 .txt 结尾文件。 6. 只查找文件目录 有时我们只想通过某个名字查找对应文件或对应目录,我们可以很容易实现这个要求。.../dir2/abcdefg.txt 检查一下,它确实列出了来自给定两个目录文件。 8. 查找隐藏文件 在Linux系统中,隐藏文件名字英文句号开头,即 . 。

    1.2K80

    Linux命令行:find26个用法示例

    列出当前目录子目录所有文件 这个命令会列出当前目录以及子目录所有文件。 $ find . ./abc.txt ./subdir ./subdir/how.php ....限制目录查找深度 find 命令默认会递归查找整个目录,而这非常消耗时间和资源。好在目录查找深度可以手动指定。例如我们只想查找一到两层以内子目录,可以通过 maxdepth 选项来指定。...反向查找 除了查找满足条件文件之外,我们还可以查找不满足条件所有文件。当我们知道要在查找中排除哪些文件时,这个选项就能发挥作用了。 $ find ..../cool.php 上面的命令查找所有 .php 结尾或者 .txt 结尾文件。 6. 只查找文件目录 有时我们只想通过某个名字查找对应文件或对应目录,我们可以很容易实现这个要求。.../dir2/abcdefg.txt 检查一下,它确实列出了来自给定两个目录文件。 8. 查找隐藏文件 在Linux系统中,隐藏文件名字英文句号开头,即 . 。

    1.1K130

    linux 入门指令

    -m MBytes为单位,返回容量。 du命令使用示例: 示例一:列出当前目录所有文件容量。 执行如下命令,列出当前目录所有文件容量。 du 返回结果如下所示。...rename命令有C语言和Perl语言两个版本,这里介绍C语言版本rename命令,不支持正则表达式。 命令使用示例: 将当前目录所有文件名中字符串demo改为大写字符串DEMO。...diff命令 diff命令描述:该命令用于比较文件差异。diff命令逐行方式,比较文本文件异同处。如果指定要比较目录,则diff会比较目录中相同文件文件,但不会比较其中子目录。...任何位于参数之前字符串都将被视为欲查找目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录查找子目录文件。并且将查找子目录文件全部进行显示。...执行如下命令,将当前目录及其子目录所有文件后缀为.txt文件列出来。 find . -name "*.txt" 返回结果如下所示。 b.

    5K40

    教你Linux find命令实例教程:15个find命令用法

    在系统上查找文件目录时,Linux上find命令无与伦比。它使用简单,而且有许多不同选项,可让您微调文件搜索。 继续阅读查看如何使用此命令在系统上查找任何内容示例。...您可以使用-maxdepth选项来规避此行为。 在-maxdepth之后指定一个数字,指示查找应递归搜索子目录数。 仅搜索当前目录文件,而不递归搜索: $ find ....删除目录(和子目录)中所有文件: $ find /path/to/search -type f -empty -delete 查找最大目录文件 如果您想快速确定系统上哪些文件目录占用了最多空间...$ find / -name "myfile.txt" 2>%1 | grep -v "Permission denied" 此命令使用grep-v(反向)选项来显示所有输出,除了显示“拒绝权限”之外所有输出...find命令CPU优先级: $ nice -n 19 find /path/to/search -name "myfile.txt" 或结合使用两个实用程序真正确保低I / O和低CPU优先级:

    3.1K10
    领券