我正在尝试恢复包含通往文件夹路径的字符串。我只想用文件夹名称的一部分来做。
所以说我有一个在" usr/share/xpement-1"中的文件夹,称为"示例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
,获取所有文件,并为以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
(文档)方法中的深度,甚至可以将其完全删除,以最大深度。您还可以在此方法中设置一些FileVisitOption
S。