Java递归地列出特定模式目录中的文件
我已经了解了下面的目录/文件结构Java递归地列出特定模式目录中的文件,java,file,recursion,filepath,filepattern,Java,File,Recursion,Filepath,Filepattern,我已经了解了下面的目录/文件结构 ABC -- Apps -- Tests -- file1.xml -- file2.xml -- AggTests -- UnitTests PQR -- Apps -- Tests -- file3.xml -- file4.xml -- AggTests -- UnitTests 这里我只想列出Tests目录中的文件列表。如何在java中实现它,我发现这很有帮助 下面列出了所有XM
ABC
-- Apps
-- Tests
-- file1.xml
-- file2.xml
-- AggTests
-- UnitTests
PQR
-- Apps
-- Tests
-- file3.xml
-- file4.xml
-- AggTests
-- UnitTests
这里我只想列出Tests
目录中的文件列表。如何在java中实现它,我发现这很有帮助
下面列出了所有XML文件,但我需要它来自名为Tests
的特定目录
try (Stream<Path> walk = Files.walk(Paths.get("C:\\projects"))) {
List<String> fileList = walk.map(x -> x.toString())
.filter(f -> f.endsWith(".xml")).collect(Collectors.toList());
fileList.forEach(System.out::println);
} catch (IOException e) {
e.printStackTrace();
}
try(streamwalk=Files.walk(path.get(“C:\\projects”)){
List fileList=walk.map(x->x.toString())
.filter(f->f.endsWith(“.xml”).collect(Collectors.toList());
fileList.forEach(System.out::println);
}捕获(IOE异常){
e、 printStackTrace();
}
最后,我需要fileList=[file1.xml,file2.xml,file3.xml,file4.xml]
List fileList=walk.filter(x->x.getParent().endsWith(“Tests”).map(x->x.toString())
List<String> fileList = walk.filter(x -> x.getParent().endsWith("Tests")).map(x -> x.toString())
.filter(f -> f.endsWith(".xml")).collect(Collectors.toList());
.filter(f->f.endsWith(“.xml”).collect(Collectors.toList());
如果只需要文件名,而不需要整个路径,则可以执行以下操作:
List<String> fileList = walk.filter(x -> x.getParent().endsWith("Tests")).map(x -> x.getFileName().toString())
.filter(f -> f.endsWith(".xml")).collect(Collectors.toList());
List fileList=walk.filter(x->x.getParent().endsWith(“Tests”)).map(x->x.getFileName().toString())
.filter(f->f.endsWith(“.xml”).collect(Collectors.toList());
公共列表getAllFiles(String baseDirectory、String filesParentDirectory)引发IOException{
返回文件.walk(path.get(baseDirectory))
.filter(文件::isRegularFile)
.filter(x->(x.getParent().getFileName().toString().equals(FileParentDirectory)))
.map(x->x.getFileName().toString()).collect(collector.toList());
}
谢谢@viral verma,我正在寻找完整的文件路径。但是,是的,这两个例子都能帮助这个社区的人
public List<String> getAllFiles(String baseDirectory,String filesParentDirectory) throws IOException{
return Files.walk(Paths.get(baseDirectory))
.filter(Files::isRegularFile)
.filter(x->(x.getParent().getFileName().toString().equals(filesParentDirectory)))
.map(x->x.getFileName().toString()).collect(Collectors.toList());
}