java后台获取文件保存的绝对路径(JAVA中的文件操作3-如何查找文件)
java后台获取文件保存的绝对路径(JAVA中的文件操作3-如何查找文件)
2024-11-22 12:57:59  作者:美人如云  网址:https://m.xinb2b.cn/tech/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-22适合唱歌发朋友圈的句子装作无动于衷,随着酒意的麻痹,让自己看起来像是麻木了一样累了将心靠岸,永远相依伴的港湾如今离别摆在眼前,将你我模糊双眼天地之宽,但愿相隔如邻,消魂一挥手,从此共享婵娟酒不过一杯接一杯,心不过醉了又再醉。
  • 刘烨票房最高的电影(那山那人那狗刘烨处女作)
  • 2024-11-22那山那人那狗刘烨处女作电影海报文|诸神的恩宠《从前慢》里,木心写道:记得早先少年时大家诚诚恳恳说一句是一句清早上火车站长街黑暗无行人卖豆浆的小店冒着热气从前的日色变得慢车,马,邮件都慢一生只够爱一个人从前的锁也好看钥匙精美。
  • 苏州各景点门65岁免费吗(详细为大家介绍)
  • 2024-11-22详细为大家介绍只要持有老年优待证或者身份证,65岁以上老年人可以在西安市免票畅游各大旅游景点,据不完全估算,西安市共有收费旅游景点67家,老年人可节省门票费2263元近日,市老龄办、市人大内司委、市老年学会与市社科。
  • 巨齿鲨讲的什么(巨齿鲨电影简介)
  • 2024-11-22巨齿鲨电影简介《巨齿鲨》主要讲述了史前巨兽巨齿鲨意外逃离深海重现人间大开杀戒,为了化解这场浩劫,深海潜水专家乔纳斯·泰勒联手中国女科学家张苏茵,与巨齿鲨展开了殊死一搏的故事剧情介绍:一项由中国主导的国际科研项目,正。
  • 护照可以办理所有国家的签证吗(世界那么大想去看看吗)
  • 2024-11-22世界那么大想去看看吗鉴于笔者前段时间刚刚办理好护照,以及翻阅了大量资料研究了各国的签证办理流程,所以特地想分享出来,给更多的想出国旅行,或者背包客们提供一些参考好了,我来先解释下,很多人对于出国来讲都是一件非常神秘,甚至。
  • 椿皮的营养价值(椿皮的营养价值有哪些)
  • 2024-11-22椿皮的营养价值有哪些椿皮,有清热燥湿,收敛止带,止泻,止血的作用既能清热燥湿,又能收敛固摄,可以用于湿热下注,带脉失约所致的赤白带下,或者热迫血行所致的月经过多,崩漏,痔疮便血也可以用于湿热泻利,或者久泻久痢椿皮也有杀虫。
  • 六一儿童节美猴王助兴(用一场艺术盛宴迎接新年)
  • 2024-11-22用一场艺术盛宴迎接新年来源:交汇点新闻客户端交汇点讯啦啦操、快板、舞蹈、校园剧、戏曲、歌唱......12月30日下午,“悦享童年”鼓楼区中小学新年音乐会在南京艺术学院实验剧场精彩上演,多才多艺的鼓楼学子在闪耀的舞台上尽情。
  • 英雄联盟每个区域的英雄都有哪些(各类阵营中有哪些英雄)
  • 2024-11-22各类阵营中有哪些英雄1,艾欧尼亚:影流之镰凯隐、幻翎洛、逆羽霞、暗黑元首辛德拉、暗影之拳阿卡丽、惩戒之箭韦鲁斯、刀锋意志艾瑞莉娅、疾风剑豪亚索、九尾妖狐阿狸、狂暴之心凯南盲僧李青、暮光之眼慎、齐天大圣孙悟空、天启者卡尔玛。
  • 湘菜清炒淮山做法
  • 2024-11-22湘菜清炒淮山做法【主料】淮山药半根【辅料】胡萝卜适量、黑木耳适量、青椒少许、姜少许、蒜少许、食盐1茶勺、生抽少许、鸡精1/4茶勺、蔬菜适量、盐适量步骤:1.淮山洗净去皮切成均匀的薄片;2.胡萝卜、黑木耳、青椒、姜、蒜。
  • 左佥都御史一般是几品官(历史知识中谒者)
  • 2024-11-22历史知识中谒者最近,古装剧《大明风华》渐入高潮,权阉王振登场后,剧情大变,原本在朱棣时代低眉顺目,连台词都没几句的太监,为啥成了主角之一了呢?这就要了解一些历史知识,看剧才能通透中国历史上,没有任何朝代的宦官能够与。