Java:如何找到只包含部分单词的文件夹?

时间:2017-11-29 17:33:31

标签: java

我正在尝试取回包含文件夹路径的字符串。 我只想用文件夹名称的一部分来做。

所以说我在“usr / share / example-1”中有一个名为“example-1”的文件夹,我希望能够通过匹配“usr / share / ex”获得该路径。

1 个答案:

答案 0 :(得分:0)

从最后一个完全给定的目录(usr/share/)开始,然后搜索以其余目录开始的文件(ex)。

因此首先将完整不完整

分开
String input = ...

int lastDirIndex = input.lastIndexOf("/");
String lastDirText = input.substring(0, lastDirIndex);
String prefix = input.substring(lastDir + 1);

然后解析目录lastDirText,获取其所有文件并过滤以prefix开头的文件:

Path dir = Paths.get(lastDirText);
List<Path> matchingFiles = Files.walk(dir, 1)
    .filter(path -> path.getFileName().startsWith(prefix))
    .collect(Collectors.toList());

列表matchingFiles则包含与给定前缀匹配的所有文件。

如果您不想将搜索限制为仅一个深度,则可以使用Files#walkdocumentation)方法调整深度,甚至完全将其留下最大深度。您还可以在此方法中设置一些FileVisitOption