我正在尝试取回包含文件夹路径的字符串。 我只想用文件夹名称的一部分来做。
所以说我在“usr / share / example-1”中有一个名为“example-1”的文件夹,我希望能够通过匹配“usr / share / ex”获得该路径。
答案 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#walk
(documentation)方法调整深度,甚至完全将其留下最大深度。您还可以在此方法中设置一些FileVisitOption
。