Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:如何找到只包含单词一部分的文件夹?_Java - Fatal编程技术网

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/
)开始搜索文件系统。