Java:如何找到只包含单词一部分的文件夹?
我正在尝试获取包含文件夹路径的字符串。 我只想使用文件夹名称的一部分Java:如何找到只包含单词一部分的文件夹?,java,Java,我正在尝试获取包含文件夹路径的字符串。 我只想使用文件夹名称的一部分 因此,假设我在“usr/share/example-1”中有一个名为“example-1”的文件夹,我希望能够通过匹配“usr/share/ex”来获得该路径。只需从最后一个完全给定的目录(usr/share/)开始搜索一个以其余目录(ex)开始的文件 因此,首先将完整的与不完整的分开: String input = ... int lastDirIndex = input.lastIndexOf("/"); String
因此,假设我在“usr/share/example-1”中有一个名为“example-1”的文件夹,我希望能够通过匹配“usr/share/ex”来获得该路径。只需从最后一个完全给定的目录(
usr/share/
)开始搜索一个以其余目录(ex
)开始的文件
因此,首先将完整的与不完整的分开:
String input = ...
int lastDirIndex = input.lastIndexOf("/");
String lastDirText = input.substring(0, lastDirIndex);
String prefix = input.substring(lastDir + 1);
然后解析目录lastDirText
,获取其所有文件并筛选以前缀开头的文件:
Path dir = Paths.get(lastDirText);
List<Path> matchingFiles = Files.walk(dir, 1)
.filter(path -> path.getFileName().startsWith(prefix))
.collect(Collectors.toList());
Path dir=Path.get(lastDirText);
List matchingFiles=Files.walk(dir,1)
.filter(路径->路径.getFileName().startsWith(前缀))
.collect(Collectors.toList());
然后,列表matchingFiles
包含与给定前缀匹配的所有文件
如果您不想将搜索限制为仅一个深度级别,您可以在文件#walk
()方法中调整深度,甚至完全将其保留为最大深度。您还可以在此方法中设置一些FileVisitOption
。您可以从已经给定的文件夹(usr/share/
)开始搜索文件系统。