Java 8路径过滤器文件名

时间:2018-07-11 03:23:37

标签: java path

我正在尝试过滤文件夹“ C:// Temp”中以“ EMP”开头的文件,并尝试返回以下路径的“路径”列表,但我尝试使用以下代码,但始终返回的是空列表。我在做语法错误吗?

String directoryPath = "C://Temp";                            
String partOfFileName = "EMP";                           
List<Path> fileNames = Files.list(Paths.get(directoryPath))                               
                .filter(line -> line.toString().startsWith(partOfFileName))
                .map(Path::getFileName)                                    
                .collect(Collectors.toList());                             

2 个答案:

答案 0 :(得分:1)

func anotherGetRandomColor()->UIColor{ let newRed = arc4random_uniform(255)/255 let newGreen = arc4random_uniform(255)/255 let newBlue = arc4random_uniform(255)/255 return UIColor(red: CGFloat(newRed), green: CGFloat(newGreen), blue: CGFloat(newBlue), alpha: 1.0) } 返回完整路径表示。如果要按文件名过滤,请在过滤操作中调用Path.toString()

getFileName()

答案 1 :(得分:0)

由于您要检查完整路径,因此您可能希望直接使用“ endsWith”而不是“ startsWith”来检查立即数。

现在,如果您位于“ folder1 / folder2 / test”中,并且使用startsWith,它将检查并尝试在第一个目录“ folder1”上进行过滤。

   try {
        List<Path> fileNames = Files.list(Paths.get(directoryPath))
                .filter(line -> line.endsWith(partOfFileName))
                .map(Path::getFileName)
                .collect(Collectors.toList());

    } catch (IOException e) {
        e.printStackTrace();
    }