java后台获取文件保存的绝对路径(JAVA中的文件操作3-如何查找文件)
java后台获取文件保存的绝对路径(JAVA中的文件操作3-如何查找文件)
2024-09-27 10:01:40  作者:美人如云  网址: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-09-28全职高手动画 视觉极尽想象男神全员上线全职高手动画今日腾讯开播影视口碑榜(微信ID:yingshikoubei):“如果喜欢,就把这一切当作是荣耀,而不是炫耀”这句《全职高手》中男主角叶修的经典台词终于成真了,曾经在脑海中想象过无数次的“荣耀职业联盟”,全都帅气。
  • 盆栽石榴夏季施肥(盆栽石榴这样施肥)
  • 2024-09-28盆栽石榴这样施肥相信很多人,都特别喜欢食用石榴这种水果但是,种植石榴的人却不多石榴是一株非常具有观赏价值以及营养价值的水果种类,只要我们掌握石榴的生长习性,就可以将它养护的极其优秀,并结出丰硕的果实首先盆栽石榴树,应。
  • 钟镇涛有几段婚姻(同是钟镇涛的基因)
  • 2024-09-28同是钟镇涛的基因众所周知,很多香港明星,只要稍微还有点“家底”的基本上都搬到内地定居了近日,就有网友频频在广州偶遇到钟镇涛从曝光的近照来看,钟镇涛保养得相当不错,既没有中年男人的发胖,还能隐隐看到肌肉线钟镇涛的现任太。
  • 奢华大理石餐桌(大理石餐桌怎么选)
  • 2024-09-28大理石餐桌怎么选正如VERSACE强大而无所畏惧的设计一样,VERSACEHOME延续了品牌在当代文化中的地位,并以极高的辨识度和排他性为空间带来最奢华的极致诱惑,今天就为大家介绍两款来自VERSACEHOME的大理。
  • 根据早孕反应判断是否怀孕准确吗(如何判断自己是否怀孕)
  • 2024-09-28如何判断自己是否怀孕受精卵于子宫内着床成功后,会持续细胞分裂形成胚胎、胎儿,此过程无声无息,但可能有出血、腹部疼痛、疲劳等感觉,特别是着床出血很类似月经,常令女性混淆,该如何判断?受精卵着床后会有什么感觉?一般情况下,受。
  • 张震讲故事惊魂记3免费收听(张震讲故事之合租屋解说文案)
  • 2024-09-28张震讲故事之合租屋解说文案中国的爱情/惊悚/恐怖电影《张震说故事的合租屋》于2016年上映,由詹越执导,魏巍编剧影片讲述了小提琴家小莹搬进一套四房一厅的合租房子,受到了三位房客的热烈欢迎:娘娘腔健身教练林宇、“微博网络名人”莫。
  • 陆毅评价陈建斌(电视剧里人神共愤的绝顶渣男)
  • 2024-09-28电视剧里人神共愤的绝顶渣男最近重看《情深深雨蒙蒙》的时候,再次被剧中的人物震碎三观,琼瑶阿姨的情爱观真心是小三为大啊!先来说剧中男主书桓,被塑造成一个大气仗义又深情的男人他跟依萍的感情既深厚又感人何书桓在两个之间摇摆不定,最终。
  • 怎样能查出来是强直性脊柱炎(强直性脊柱炎有哪些临床表现)
  • 2024-09-28强直性脊柱炎有哪些临床表现强直性脊柱炎,常被人们称为“不死的绝症”,他又有哪些临床表现呢?1、全身症状:起病形式多数较隐袭早期可能有厌食、低热、乏力、消瘦、贫血等症状2、关节症状:1)腰部或骶骼部疼痛最常见(90%)2)晨僵(。
  • 狐妾民间故事大全(民间故事狐妻)
  • 2024-09-28民间故事狐妻汝南猎户黄寒升,自幼随父亲黄老汉上山打猎,十二岁那年,一云游道士路过村子,将他收为徒弟,带在身边,八年后,黄寒升思及父亲年迈,回家侍奉父亲黄寒升回家后,黄老汉忙活着为他张罗婚事这日,黄寒升下山回家,一。