我在尝试使用通配符验证目录中文件是否存在时遇到问题。该方法应该确定是否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)
添加回答
举报
0/150
提交
取消