关于获取某目录及子目录下所有文件且不包含隐藏文件

最近比较忙,很少写blog了!!!

关于获取目录及子目录下所有文件是常遇到的功能,一般通过递归遍历实现。而生产场景中,一般是遍历nas上的目录,在nas上利用File.listFiles(),在linux系统上无法获取含有中文名的文件的。这里是通过java.nio.file来实现。

直接上代码吧

import java.io.IOException; 
import java.nio.file.*; 
import java.nio.file.attribute.BasicFileAttributes; 
import java.util.ArrayList; 
import java.util.List; /*** 遍历目录及其子目录,获取所有非隐藏文件 */
public class NonHiddenFileWalker {/*** 遍历指定目录,获取所有非隐藏文件** @param startDir 起始目录路径* @return 非隐藏文件的路径列表 * @throws IOException 如果访问文件系统出错*/public static List<Path> walkNonHiddenFiles(String startDir) throws IOException {Path rootPath = Paths.get(startDir); List<Path> fileList = new ArrayList<>();// 定义文件访问器SimpleFileVisitor<Path> visitor = new SimpleFileVisitor<>() {// 访问目录前检查是否为隐藏目录@Overridepublic FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {if (Files.isHidden(dir))  {return FileVisitResult.SKIP_SUBTREE; // 跳过隐藏目录及其子目录}return FileVisitResult.CONTINUE;}// 处理文件 @Overridepublic FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {if (!Files.isHidden(file))  {fileList.add(file);  // 只添加非隐藏文件}return FileVisitResult.CONTINUE;}// 处理访问失败的情况@Overridepublic FileVisitResult visitFileFailed(Path file, IOException exc) {System.err.println(" 访问失败: " + file + " - " + exc.getMessage()); return FileVisitResult.CONTINUE;}};// 执行文件遍历Files.walkFileTree(rootPath,  visitor);return fileList;}/*** 主程序入口*/public static void main(String[] args) {try {String directoryPath = "/target/directory"; // 替换为你的目标路径List<Path> nonHiddenFiles = walkNonHiddenFiles(directoryPath);System.out.println(" 找到以下非隐藏文件:");for (Path file : nonHiddenFiles) {System.out.println(file.toString()); }} catch (IOException e) {System.err.println(" 发生错误: " + e.getMessage()); e.printStackTrace(); }}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/91201.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/91201.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker可视化管理工具lazydocker

Lazydocker 是一个用 Go 语言编写的命令行 Docker 管理工具。它提供了一个简洁、直观的终端界面&#xff0c;支持键盘和鼠标操作&#xff0c;可通过方向键与快捷键实时查看和管理容器、镜像、网络等资源&#xff0c;大幅简化了原本复杂的命令行操作&#xff0c;提升操作效率。2…

少林寺用什么数据库?

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 作者&#xff1a;IT邦德 中国DBA联盟(ACDU)成员&#xff0c;15年DBA工作经验 Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主&#xff0c;全网粉丝15万 擅长主流Oracle、MySQL、PG、高斯及…

C语言---万能指针(void *)、查找子串(strncmp函数的应用)多维数组(一维数组指针、二维数组指针)、返回指针值函数、关键字(const)

一、字符串与指针用字符指针指向一个字符串&#xff0c;可以不定义字符数组&#xff0c;而定义字符指针。用字符指针指向字符串中的字符。不能使用指针去改变不能修改的空间。eg1. 运用指针将 src 的内容拷贝到 dest 中去void Strcpy(char *dest, char *src) {while(*src ! \0)…

Keepalived 实战

一、高可用集群基础核心概念与指标集群类型&#xff1a;LB&#xff08;负载均衡&#xff09;&#xff1a;如 LVS、HAProxy、Nginx&#xff0c;提升吞吐量&#xff1b;HA&#xff08;高可用&#xff09;&#xff1a;保障核心服务&#xff08;数据库、Redis&#xff09;连续性&am…

窗口函数替代子查询的复杂查询简化技巧

窗口函数通过单次扫描完成分析计算&#xff0c;能大幅简化子查询结构并提升性能&#xff0c;尤其在排名、累计计算等场景‌15。以下是核心优化技巧&#xff1a;一、排名场景替代方案‌部门工资排名‌传统子查询需自连接和聚合计数&#xff1a;sqlSELECT e1.name, e1.salary, (S…

深度学习:预训练和warm up的区别

“预训练&#xff08;Pre-training&#xff09;”和“Warm-up&#xff08;预热&#xff09;”是深度学习中常见的两个训练策略&#xff0c;它们虽然都在训练初期起作用&#xff0c;但本质和目的完全不同。一、预训练&#xff08;Pre-training&#xff09;1. 定义预训练是指&…

Apache Ignite中分布式信号量(Distributed Semaphore)的说明和使用示例

这段内容是关于 Apache Ignite 中 分布式信号量&#xff08;Distributed Semaphore&#xff09; 的说明和使用示例。我们来一步步解析&#xff0c;帮助你深入理解它的含义和用途。&#x1f539; 一、什么是 Semaphore&#xff08;信号量&#xff09;&#xff1f; 在并发编程中&…

怎么提升服务器的防攻击能力!

提升服务器的防攻击能力需要从​​架构设计、技术防护、运维管理​​等多维度入手&#xff0c;覆盖网络层、系统层、应用层及数据层的安全防护。以下是具体的策略和实践方法&#xff1a;​​一、基础安全加固&#xff1a;消除自身漏洞​​服务器自身的脆弱性是最常见的攻击入口…

vscode配置rust环境

1.官网下载vscode&#xff0c;安装 2.vscode命令行运行&#xff1a; Invoke-WebRequest https://win.rustup.rs/x86_64 -OutFile rustup-init.exe然后&#xff1a; .\rustup-init.exe3.验证 先配置path&#xff1a; $env:Path ";$env:USERPROFILE\.cargo\bin"查看是…

最新版 HarmonyOS NEXT 开发工具安装教程:如何在 macOS 系统安装 DevEco Studio 5.0.3 编辑器?

最新版 HarmonyOS NEXT 开发工具安装教程&#xff1a;如何在 macOS 系统安装 DevEco Studio 5.0.3 编辑器&#xff1f; 什么是 DevEco Studio&#xff1f; DevEco Studio 是华为为 HarmonyOS 开发的强大集成开发环境&#xff08;IDE&#xff09;&#xff0c;专为开发 Harmony…

电商项目统一认证方案设计与实战

1. 微服务网关整合 OAuth2.0 设计思路分析 网关整合 OAuth2.0 有两种思路&#xff0c;一种是授权服务器生成令牌, 所有请求统一 在网关层验证&#xff0c;判断权限等操作&#xff1b;另一种是由各资源服务处理&#xff0c;网关只做请求 转发 。 比较常用的是第一种&#xf…

学习Markdown

标题一 标题二 标题三 标题四 标题五 标题六这是一段引用文本直接编写&#xff0c;段落换行是末尾两个以上的空格&#xff0b;回车 或者在段落后加一个空行 粗体语法&#xff1a;使用两个星号 ** 或两个下划线 __ 包围文字&#xff1a;这是粗体文字使用星号 这是__粗体文字__使…

剧本杀系统 App 开发:科技赋能,重塑剧本杀游戏体验

在科技飞速发展的当下&#xff0c;各个行业都在积极寻求与科技的融合&#xff0c;以实现创新和升级。剧本杀行业也不例外&#xff0c;剧本杀系统 App 的开发正是科技赋能的生动体现&#xff0c;它重塑了传统的剧本杀游戏体验&#xff0c;为玩家带来了全新的感受。剧本杀系统 Ap…

wvp-gb28181-pro 只用jar运行

编译前端后npm install --global yarnyarn --registryhttps://registry.npmjs.org installyarn run build&#xff0c;生成的前端文件&#xff0c;会在wvp-GB28181-pro\src\main\resources\static&#xff0c;因为是在resources中&#xff0c;打maven打包后会一起打到jar中&…

深度学习(鱼书)day06--神经网络的学习(后两节)

深度学习&#xff08;鱼书&#xff09;day06–神经网络的学习&#xff08;后两节&#xff09;一、梯度 像 这样的由全部变量的偏导数汇总而成的向量称为梯度&#xff08;gradient&#xff09;。 梯度实现的代码&#xff1a; def numerical_gradient(f, x):h 1e-4 # 0.0001grad…

学习嵌入式的第三十四天-数据结构-(2025.7.29)数据库

数据库基础概念 数据库是用于存储和管理海量数据的应用程序&#xff0c;提供数据增删改查及统计功能&#xff08;如最大值、最小值、平均数等&#xff09;。通过SQL语句操作数据&#xff0c;以表格形式管理存储。 数据库分类 关系型数据库 Oracle&#xff08;大型&#xff0…

STM32——HAL库

总&#xff1a;STM32——学习总纲 一、简介 1.1 CMIS简介 所有厂家为了市场兼容性推出的标准 arm架构 1.2 HAL库简介 1.2.1 各种库优缺点 二、 STM32 Cube固件包 ST公司为CMSIS 中间层开发的pack&#xff0c;包含HAL。 2.1 获取方式 ST官网&#xff1a;st.com/content/st_c…

数据结构-图的相关定义

图-多对多Graph&#xff08;V,E&#xff09;&#xff0c;图&#xff08;顶点Vertex&#xff0c;边Edge&#xff09;图可以没有边&#xff0c;只有一个顶点也叫图&#xff0c;但是单独的一条边&#xff0c;或者一个顶点连一条边&#xff0c;不能叫图有向图&#xff1a;无向图&am…

B 站搜一搜关键词优化:精准触达用户的流量密码

在 B 站内容生态中&#xff0c;搜一搜功能是用户主动获取信息的重要渠道&#xff0c;而关键词优化则是让你的视频在搜索结果中脱颖而出的关键。通过合理优化关键词&#xff0c;能提升视频曝光率&#xff0c;吸引精准流量&#xff0c;为账号发展注入强劲动力。以下从关键词挖掘、…

Python爬虫实战:研究purl库相关技术

1. 引言 随着互联网数据量的爆炸式增长,网络爬虫已成为数据采集、舆情分析和学术研究的重要工具。Python 凭借其丰富的库生态和简洁语法,成为开发爬虫的首选语言。本文提出的爬虫系统结合 requests 进行 HTTP 请求、BeautifulSoup 解析 HTML,并创新性地引入 purl 库处理复杂…