java后台获取文件保存的绝对路径(JAVA中的文件操作3-如何查找文件)
java后台获取文件保存的绝对路径(JAVA中的文件操作3-如何查找文件)
2024-11-05 11:39:56  作者:美人如云  网址:https://m.xinb2b.cn/know/rbi343080.html

在前面的JAVA中的文件操作1-如何获取文件信息,创建文件和JAVA中的文件操作2-如何读写文件中,我们介绍了文件的基本操作那么,我们有时候还可能会遇到从文件夹中搜索某个文件的情况,这时候就需要对文件进行查找了,下面我们就来聊聊关于java后台获取文件保存的绝对路径?接下来我们就一起去了解一下吧!


java后台获取文件保存的绝对路径

java中的文件操作3-如何查找文件

在前面的JAVA中的文件操作1-如何获取文件信息,创建文件和JAVA中的文件操作2-如何读写文件中,我们介绍了文件的基本操作。那么,我们有时候还可能会遇到从文件夹中搜索某个文件的情况,这时候就需要对文件进行查找了。

通过java提供的Files.walk和PathMatcher可以来完成这一任务。Files.walk可以遍历目录树,PathMatcher可以完成目标文件的匹配,两者结合即可找到我们需要的文件。如果还对文件有其他要求,比如最近更新时间,还可以通过Files.find来自定义过滤器来完成,不过一般都不需要。

PathMatcher支持两种查找模式:glob和regex,用法是FileSystems.getDefault().getPathMatcher(matcher),matcher的语法是: 模式:匹配串,比如:

FileSystems.getDefault().getPathMatcher("glob:*.txt");

glob模式匹配

glob模式起源于 Unix 的 bash shell,在shell中非常常用,在这里的用法也是一致的。

比如下面的示例,查找所有md文件:

Path rootPath = Paths.get("D:\\project");PathMatcher markdownFileMatcher = FileSystems.getDefault().getPathMatcher("glob:***.txt 匹配这个目录中的任何.txt结尾的文件,包括子目录中的

?

匹配任意单个字符

hell?.txt 可以匹配 hello.txt

[abc]

匹配括号中给出字符,可以是一堆字母或者是范围

[abc] 表示a,b,c中任意字符,也可以通过[a-c]表示

[!abc]

匹配范围与上面相反

[!abc] 表示非a,b,c的任意字符

最常用的就是**和*了,请务必注意其中区别。

regex模式

regex模式即正则表达式模式,可以书写正则表达式来匹配文件,同样是查找md文件:

Path rootPath = Paths.get("D:\\project");PathMatcher markdownFileMatcher = FileSystems.getDefault().getPathMatcher("regex:.*\\.md");try (Stream<Path> fileAndDirs = Files.walk(rootPath)) { fileAndDirs .filter(markdownFileMatcher::matches) .limit(10) .forEach(System.out::println);}

Files.find查找文件

Files.find提供了自定义过滤器的方法,下面查找了最近修改时间在10天以内的文件:

Instant tenDaysBefore = Instant.now().minus(10, ChronoUnit.DAYS);BiPredicate<Path, BasicFileAttributes> matcher = (path, attrs) -> Files.isRegularFile(path) && attrs.lastModifiedTime().toInstant().isAfter(tenDaysBefore);try (Stream<Path> files = Files.find(rootPath, Integer.MAX_VALUE, matcher)) { files .limit(10) .forEach(System.out::println);}

matcher可以获取到Path示例来匹配路径或者文件内容,还可以获取到BasicFileAttributes得到文件的修改时间等信息,可以根据更新时间等信息来匹配文件。

  • 兰州歌词完整版(歌词兰州的水)
  • 2024-11-06歌词兰州的水图文/乡野诗人汪洋(新疆)有一天,我们牵手漫步在母亲河岸,那一晚,我们又相逢在兰州东站呼啸的列车,将我们带向水的两边兰州的水,兰州的夜,兰州的风,风带走的都是过客,留下了黄土情缘顺着水走,追着风去,不。
  • 小号电池是几号
  • 2024-11-06小号电池是几号电视遥控器的电池一般是7号电池,极个别用的是5号电池家庭最常用的电池就是2号电池、5号电池以及7号电池2号电池又称C型电池,尺寸:直径25.3mm,高度49.5mm5号电池又称AA电池,用途最为广泛,。
  • 职场包括什么注意事项(职场包括啥注意事项)
  • 2024-11-06职场包括啥注意事项不要打小报告领导并不喜欢打小报告的人而且单位里一般都会有领导的耳目平时的话咱多做事少说话,没准哪句话不经意间得罪了别人,到时候你自己怎么死的都不知道总之就是不玩搞职场斗争,有实力才是真的不要太过自我不。
  • 时间如何设置24小时(时间怎么设置24小时)
  • 2024-11-06时间怎么设置24小时打开手机找到手机中的设置选项,点击打开设置功能在设置里面找到高级设置,在高级设置里面找到第一个日期与时间在日期和时间里面会有一个24小时制,开启24小时制这个功能你会看到手机屏幕上就显示时间为24小时。
  • 河南省南阳市淅川县为贫困县吗(河南南阳淅川县一个偏远镇)
  • 2024-11-06河南南阳淅川县一个偏远镇河南省南阳市淅川县的地图呈东南-西北走向的条形,淅川县城位于北部,这就使得东南部一些镇到县城比较偏远了,这其中就包括了今天要介绍的九重镇(丹阳镇),该镇距离淅川县城超过60公里写这个镇的时候,小编不知。
  • 碳水化合物是啥(碳水化合物介绍)
  • 2024-11-06碳水化合物介绍碳水化合物(carbohydrate),它是由碳、氢和氧三种元素组成,自然界存在最多、具有广谱化学结构和生物功能的有机化合物可用通式Cx(H2O)y来表示由于它所含的氢氧的比例为二比一,和水一样,故称。
  • 水母雪兔子是不是保护植物(水母雪兔子不是保护植物)
  • 2024-11-06水母雪兔子不是保护植物水母雪兔子不是保护植物,目前雪兔子没有被列入国家重点保护野生植物名录雪兔子,是桔梗目、菊科、风毛菊属植物生长于高山流石滩、山坡岩缝中、山顶沙石地;海拔4500-5000米分布在中国云南(丽江)、西藏(。
  • 冒险岛进阶帽子强在哪里(冒险岛200级前升级路线)
  • 2024-11-06冒险岛200级前升级路线今天来讲讲冒险岛200级前升级的路线安排这个攻略可能更适合于玩家练小号的升级路线,如果是新手玩家,建议可以一路跟着推荐任务走,速度慢点没关系,做任务途中可以对冒险岛的整体脉络有一个更直观的认知好的,让。
  • 如何正确解辣(为何有的人无辣不欢)
  • 2024-11-06为何有的人无辣不欢一说到辣椒,大家脑海里都浮现出各种美食----牛油火锅九宫格、麻辣小龙虾、鸡公煲、剁椒鱼头、辣子鸡、毛血旺、口水鸡、干锅牛蛙、麻辣兔头、水煮鱼........(别说了,再说我都要饿了...)而事实上,。