如何获得路径的一部分

我有一个问题,我有一个函数可以返回所有文件,List<String>其中有几行文件以.pomie 结尾,路径是C://poms/xx/interested-2.0.pom我怎么能得到只是interested因为 ie 这是pom我应该使用的名称split还是有更好的方法来有Java 8什么建议吗?


public List<String> listFiles(String path, List<File> files) {


    File directory = new File(path);


    File[] fList = directory.listFiles();

    if (fList != null) {

        for (File f : fList) {

            if (f != null && f.isFile()) {

                files.add(f);

            } else if (f.isDirectory()) {

                listFiles(f.getAbsolutePath(), files);

            }

        }

    }


    return files.stream()

            .filter(file -> file.toString().endsWith(".xml"))

            .map(File::toString)

            .collect(Collectors.toList());

}



30秒到达战场
浏览 87回答 2
2回答

慕慕森

无需对原始代码进行太多更改,您可以这样做:return&nbsp;files.stream().filter(file&nbsp;->&nbsp;file.toString().endsWith(".xml")) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.map(File::getName) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.map(s&nbsp;->&nbsp;s.split("-")[0]) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.collect(Collectors.toList());而不是获取文件的整个路径,只需获取文件的名称。

温温酱

要仅获取文件名,您可以使用Path.getFileName:String fileName = Paths.get(path).getFileName(); // interested-2.0.pomString result = fileName.split("-")[0];编辑:您也可以使用listFiles(FileFilter filter):public List<String> listFiles(String path) {&nbsp; &nbsp; File directory = new File(path);&nbsp; &nbsp; File[] fList = directory.listFiles(p -> p.getName().endsWith(".xml"));&nbsp; &nbsp; if (fList != null) {&nbsp; &nbsp; &nbsp; &nbsp; return Arrays.stream(files)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .map(file -> file.getName().split("-")[0])&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .collect(toList());&nbsp; &nbsp; }&nbsp; &nbsp; throw new RuntimeException("No files");}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java