java后台获取文件保存的绝对路径(JAVA中的文件操作3-如何查找文件)
java后台获取文件保存的绝对路径(JAVA中的文件操作3-如何查找文件)
2024-11-05 09:00:59  作者:美人如云  网址:https://m.xinb2b.cn/life/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得到文件的修改时间等信息,可以根据更新时间等信息来匹配文件。

  • oa人事档案解决方案(人事合同管理系统推荐)
  • 2024-11-06人事合同管理系统推荐企业都在用哪款人事合同管理系统?最近收到HR伙伴的咨询这位HR所在企业拥有5000员工,且于各地分公司分布,由于各分支采取员工属地化管控方式,使得总部无法第一时间了解到各地员工信息,难以实现集中化的统。
  • 快手邀请到了大张伟(快手自制综艺出发吧)
  • 2024-11-06快手自制综艺出发吧“妈妈带我来到这个星球,我要带她去看更大的宇宙”8月6日,由快手娱乐出品、伊利欣活中老年奶粉独家冠名的创新性代际互动体验真人秀《出发吧!老妈》正式开播数据显示,《出发吧!老妈》首期直播全网总曝光高达1。
  • 一年一度舞龙舞狮闹元宵(提前剧透春节期间)
  • 2024-11-06提前剧透春节期间为营造街道浓厚的新春节日气氛让华阳老百姓过一个喜庆、健康、祥和、温暖的新年增强人民群众幸福感华阳街道将在新春佳节期间开展舞狮舞龙拜年、主题文艺汇演“非遗体验”活动元宵游园会等系列活动为辖区群众提供丰富。
  • 书画藏品如何保养(书画藏品怎么保养)
  • 2024-11-06书画藏品怎么保养张挂和欣赏字画,要避免阳光直射作品字画开卷闭卷不能过于用力张挂过的书画在收藏之前,一定要先做好清洁工作清洁的时候最好用丝绸质地的物品轻轻拂拭书画的表面的灰尘,防止把灰尘卷进书画轴头里,引起霉变而误染纸。
  • 哭天喊地窦娥冤(感天动地窦娥冤)
  • 2024-11-06感天动地窦娥冤​楚州山阳县女子窦娥无罪有冤,被判死刑这一千古奇冤代流传,令人感叹!窦娥冤屈而死,感天地动情窦娥家居山阳县,知书达礼,孝顺父母她的父亲窦天章,自幼饱读诗书,满腹才学,时运不济,屡试不中,不幸又死去妻子。
  • 创业板注册制要开通吗(重磅注册制来了)
  • 2024-11-06重磅注册制来了酝酿多年的创业板改革正式亮相!4月27日证监会和深交所发布《创业板首次公开发行股票注册管理办法(试行)》等规则,这是首次将增量与存量改革同步推进的资本市场重大改革,涉及发行、上市、信息披露、退市等一系。
  • 第五人格祭典之夜结束时间(第五人格近期频繁道歉)
  • 2024-11-06第五人格近期频繁道歉可能很多细心的第五人格玩家会发现,最近第五人格官方说抱歉的概率明显上升,从7月末以来,柯南联动开启之后,官方的爆料好像就总是事后打脸,经常要延期上线,让人不知道明明有共研服可以进行技术测试,为什么一次。
  • 宝宝吐奶的原因及改善方法(宝宝又吐奶别急着换奶粉)
  • 2024-11-06宝宝又吐奶别急着换奶粉■廖木兴/图别急着换奶粉,先试试改善喂养方式吐奶是许多新生宝宝都会经历的问题,特别是在母乳转换奶粉喂养时,有些宝宝吐奶、不吃奶的情况更严重有的家长担心宝宝是否生病了,担心吐奶影响宝宝的生长发育;有的家。
  • 金木水火土五行解析(金木水火土相生相克学说并不是真正的五行)
  • 2024-11-06金木水火土相生相克学说并不是真正的五行五行在春秋战国先秦时代是指“金、木、水、火、土”五项重要内容,并不是现代所指的“金、木、水、火、土”五种物质,“五行相生相克学说”是后人附会先古“五行”这个名词新创的,与“五行”本义已经没有多少关系,。
  • dnf阿拉德回顾(阿拉德最繁荣的国度-佩鲁斯的灭亡)
  • 2024-11-06阿拉德最繁荣的国度-佩鲁斯的灭亡大家好,我是狗逸,前段时间跟大家讲了一些官方剧情,大家都比较熟悉,那么今天我们来讲一下阿拉德曾经最繁荣的国度-佩鲁斯帝国说起佩鲁斯帝国,大家可能想到的是曾经的神器佩鲁斯的荣誉,卡赞跟奥兹玛,以及我前段。
  • 一天跳1000个跳绳瘦了(跳绳长高的正确方法)
  • 2024-11-06跳绳长高的正确方法1、握绳方式:双手各自握紧绳两边的门把一般状况下为一脚踩下绳索正中间,双臂屈肘将手臂抬平,绳索被弄直即是合适的长短2、摇绳方式:往前摇时,后臂挨近人体两边,肘稍外展,手臂类似水准,用手腕子使力做外旋内。
  • 第三十二计(第三十三计反间计)
  • 2024-11-06第三十三计反间计原典反间计,是指收买或利用敌方派来的间谍为我所用在《三十六计》中,此计原文为:“疑中之疑,比之自内,不自失也”意思就是在已经布置好的疑阵中再布一道疑阵,将敌人派来的奸细为我所用,这样自己就不会有任何损。