java后台获取文件保存的绝对路径(JAVA中的文件操作3-如何查找文件)
java后台获取文件保存的绝对路径(JAVA中的文件操作3-如何查找文件)
2024-11-22 07:15:48  作者:美人如云  网址:https://m.xinb2b.cn/sport/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有一种腿短叫假胯宽顶端新闻·大河健康报记者梁露露“假胯宽”的矫正教程近日在网络上刷屏,不少健身博主纷纷献出良策作为资深“假胯宽”患者的萱萱烦恼已久,大腿外侧突出的两坨肉肉让她的腿显得又粗又短可当她在网上寻找“假胯宽”矫。
  • 一般酸辣粉怎么做才好吃(酸辣粉的正确做法)
  • 2024-11-22酸辣粉的正确做法酸辣粉的热度这么高,正是因为它那让人欲罢不能的味道,麻、辣、鲜、香、酸是酸辣粉的特色,吃一口就让人忘不掉它的味道,更是恨不得每天都能吃一碗酸辣粉!其实酸辣粉的制作方法其实也很简单,将1123这个黄金比。
  • 电视剧白夜追凶是讲什么剧情的(电视剧白夜追凶大结局)
  • 2024-11-22电视剧白夜追凶大结局主演:潘粤明,王泷正,梁缘,吕晓霖,尹姝贻剧情介绍:该剧讲述了刑侦支队队长关宏峰为了洗脱弟弟关宏宇的杀人罪名,一路破获多起案件的故事...白夜追凶第32集大结局韩彬以帮助朋友的名义,亲手杀死黄山关宏峰。
  • 我的世界最好玩的变大变小(我的世界它们好粗好大)
  • 2024-11-22我的世界它们好粗好大1.17新版中,加入了原生矿物体系以铁矿方块为例,使用普通镐挖掘铁矿方块后掉落的不再是整一个方块,而是变为实打实的原生矿物而原生矿物可以经过直接精炼获取到高纯度的金属锭此外,原生矿物还可以通过时运镐来。
  • 柚子皮有什么功效(柚子皮的益处)
  • 2024-11-22柚子皮的益处柚皮可止咳化痰,清热解毒,对肺炎及气管炎所引起的咳嗽、气喘、痰多存在一定治疗效果患者出现咳嗽痰多时食用柚皮,上述症状可很快好转;柚皮中含有柚皮苷对金黄色葡萄球菌、大肠杆菌、痢疾杆菌、伤寒杆菌等存在抑制。
  • 李惠利和张基龙参加的综艺(李惠利张基龙甜剧来袭)
  • 2024-11-22李惠利张基龙甜剧来袭李惠利张基龙甜剧来袭,kiss部分看不厌,希望不要太虐有好看的韩剧自然是少不了小编的身影,只要是评分高的韩剧必须得追一追今天就和大家来分享一下最近小编一直在熬夜追的剧——《心惊肉跳的同居》最开始,这部。
  • 张译和殷桃的关系如何(张译和殷桃是什么关系)
  • 2024-11-22张译和殷桃是什么关系张译最近大火,相信很多人对于张译都是再熟悉不过了,因为张译在最近热映的剧中有非常好的表现,很多人看到了狂飙中张译的表现,一些人对此是非常的好奇,为什么张译会有这么好的资源,这次的张译为什么没有和殷桃合。
  • 遇见最好的蓝盈莹(蓝盈莹一树桃花开闪婚闪离)
  • 2024-11-22蓝盈莹一树桃花开闪婚闪离近日,由王瑞执导、王志文、徐帆、蓝盈莹、李泓良等实力演员主演的都市情感剧《一树桃花开》正在天津、深圳卫视热播剧中蓝盈莹扮演的盛开直率善良,贤惠贴心,但却遇极品奇葩男和刁钻任性的婆婆,跳入了闪婚的“火坑。
  • 冰山女总裁都市小说(冰山总裁不近女色)
  • 2024-11-22冰山总裁不近女色她的话无可厚非,也让顾瑾萱没有多加怀疑敲定好这件事,顾瑾萱就跟何彬蔚离开了服装店,他们前脚刚走,骆铭辰后脚就从里间走出来韩梓茹瞪了眼这位惹不起的大少:“满意了?跟彬子抢女人,你这个哥怎么当的”骆铭辰微。