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

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

java后台获取文件保存的绝对路径(JAVA中的文件操作3-如何查找文件)

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得到文件的修改时间等信息,可以根据更新时间等信息来匹配文件。

  • 列宾油画100幅欣赏(列宾画作伏尔加河纤夫欣赏)
  • 2024-07-08列宾画作伏尔加河纤夫欣赏1869年,正在彼得堡绘画学院学习的列宾来到涅瓦河河畔游玩,他无意中看到一群黑色的、闪着油光的物体艰难地向前移动他的好奇心顿起,等到他靠近之后,才发现原来那是一群套着绳索在拉平底货船的纤夫纤夫们蓬头垢。
  • 湖南米粉店现状(祁阳米粉店越来越多)
  • 2024-07-08祁阳米粉店越来越多祁阳米粉到底好不好吃,好像没有了从前的味道从种类单一(汤粉、凉拌粉)到不断衍生(鱼头粉、三鲜粉、鸭血粉、鸭肉粉、辣椒炒肉粉、砍肉粉等等)我们可以看到祁阳市民富了!钱包鼓了!生活品质在不断提高!从前,是。
  • 库伊拉是哪部剧的反派(库伊拉在电影里换了47套衣服)
  • 2024-07-08库伊拉在电影里换了47套衣服这是一个天生头发黑白配的女生;这是一个天生时髦感满分的女生;这是一个被同学霸凌会分分钟奋起反击的女生;这是一个为了成功心甘情愿刷马桶的女生;她就是最近疯狂刷屏的迪士尼大女主:Cruella库伊拉作为一。
  • 文化常识高中语文题和答案解析(高中语文古代文化常识题)
  • 2024-07-08高中语文古代文化常识题点击添加图片描述(最多60个字)编辑高三中国古代文化常识题(每小题3分,共计150分,时间共60分钟)1、我国古人对婴、幼、少、青、壮、中、老各个年龄的称谓,真可说是名目繁多,雅致有趣古代的“及笄之年。
  • 养猫一般都吃什么(猫吃什么才可以养的胖胖的)
  • 2024-07-08猫吃什么才可以养的胖胖的图片来自有宠APP用户养的胖胖的是指撸上去要像牛顿流体力学一样的赶脚吗?那对毛孩来说可太不好了,因为过胖随之而来的疾病可不少,脂肪肝、高血脂、高血压、糖尿病、运动功能障碍、关节病变等等会给猫孩的猫生带。
  • 鼠标键的5种功能各是什么
  • 2024-07-08鼠标键的5种功能各是什么左键:单击,选定,双击,执行相应命令——对非可执行文件或是文件夹就是打开,对可执行程序则是运行……右键:只有单击一说,一般是显示对当前对象可以进行的操作……中键:多是滑轮,单击后可以上下滑动当前窗口(。
  • 变形计成功后的王晨正(变形计最苦爷爷去世1年了)
  • 2024-07-08变形计最苦爷爷去世1年了当冥顽不灵的叛逆古惑仔遇到历经人间悲苦的贫穷老爷爷,会怎么样呢?2014年,抽烟打架、挥金如土的16岁城市少年,被送去农村住在连洗发水都没有老爷爷家里谁都没有想到,这个“鬼见愁”“妈见打”的边缘少年竟。
  • 2872面膜什么意思(你知道吗)
  • 2024-07-08你知道吗QB/T2872是国家轻工业面膜执行标准(膏状面膜,啫喱面膜,面膜粉,无妨布面膜贴,水晶面膜)这个是国家对面膜的检验标准,所有在售的面膜在面膜的包装袋上要注明有QB/T2872才是合格的产品,否则是不。
  • 牛肉香菇饺子馅配什么菜好吃(牛肉香菇做饺子馅太香了)
  • 2024-07-08牛肉香菇做饺子馅太香了立秋,用它来包饺子馅,健脾开胃增强免疫力,越吃越香身体越强壮牛肉搭配它做饺子馅太香了,营养翻倍,味道鲜美,吃一次念念不忘立秋后,人们感受到秋高气爽的同时,也能感觉到昼夜温差逐渐变大,白天气温还比较高,。
  • dnf操作最好的剑魂 DNF那些只存在于记忆中的最强技能
  • 2024-07-08dnf操作最好的剑魂 DNF那些只存在于记忆中的最强技能先关注一波台长,我们的故事从此处开始!DNF中有无数的技能,随着游戏版本的更新与变革,还有一次次的技能重做,有一些技能被删除,有一些技能得到加强,DNF中最强神级技能是什么?台长觉得是致死、魔性、潜在。
  • 如何构建稳定的系统(如何构建一套专属于自己的效率系统)
  • 2024-07-08如何构建一套专属于自己的效率系统编者按:在日常的工作、学习和生活中,我们总是避免不了效率问题,我们也总是希望能够学习和掌握一套高效方法,从而在任何方面都做到游刃有余然而,世界上并不存在通用的高效生产力系统这篇文章,原标题为Howto。