为了账号安全,请及时绑定邮箱和手机立即绑定

通配符目录搜索问题

通配符目录搜索问题

繁星点点滴滴 2021-09-15 16:05:25
我在尝试使用通配符验证目录中文件是否存在时遇到问题。该方法应该确定是否FAACIFP_(year)(cycle).DAT可以在当前目录中找到具有名称的文件。我试过PathMaker.matches("glob:FAACIFP_18")用 IF/ELSE运行一个,当我测试它时,它总是会评估为 TRUE。所以,我尝试了一个 lambda 函数,但它找不到文件。下面的 lambda 不应该打印文件名,还是我误解/误用了它?static void getCnvrtdCifpName() throws IOException{        String cnvFileName = "FAACIFP_"+Year.now()                .format(DateTimeFormatter.ofPattern("yy"));        Path cnvFilePath = Paths.get(System.getProperty("user.dir"));        Files.find(cnvFilePath,0,(path,attr) ->                 path.getFileName().startsWith(cnvFileName)).forEach(System.out::println);        System.out.println("EVALUATING METHOD....\t SEARCH PATH: "+cnvFilePath                +" \n\t\t\t FILE STRING: "+cnvFileName);    }输出:run:Located RAW CIFP file FAACIFP18EVALUATING METHOD....    SEARCH PATH: C:\Users\u314170\Documents\Personal\Java\NetBeans\A424Parser              FILE STRING: FAACIFP_18BUILD SUCCESSFUL (total time: 0 seconds)
查看完整描述

2 回答

?
UYOU

TA贡献1878条经验 获得超4个赞

两个问题:1) 将 find 调用中的 maxdepth 更改为 1(从零开始) 2) path.getFileName() 返回完整路径名。您将只想评估文件名部分(查看 getName(getNameCount()-1)


查看完整回答
反对 回复 2021-09-15
  • 2 回答
  • 0 关注
  • 155 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信