java 8 路径过滤器文件名

red*_*ynr 5 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());                             
Run Code Online (Sandbox Code Playgroud)

shm*_*sel 2

Path.toString()返回完整路径表示。如果您想按文件名进行过滤,请getFileName()在过滤操作中调用:

String directoryPath = "C://Temp";
String partOfFileName = "EMP";
List<Path> fileNames = Files.list(Paths.get(directoryPath))
        .filter(path -> path.getFileName().startsWith(partOfFileName))
        .collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)