我有一个文件列表:
a/b/c
a/b/c.data
a/b/c/d
a/b/c/d.data
当我传入文件夹路径a/b/
时,我想返回该文件夹中的文件字符串列表。在这种情况下,应返回a/b/c
和a/b/c.data
。我已经尝试过(a/b/).+(?!/)
但String.matches(<regex>)
为他们回报了true
。
PS:文件名不以/
结尾。
尝试使用 Files.walk
Files
.walk(Paths.get("YOUR_PATH"))
.forEach(System.out::println);
如果您只需要文件,那么您可以这样做:
Files
.walk(Paths.get("YOUR_PATH"))
.map(Path::toFile) // convert Paths to Files
.filter(File::isFile) // filter to remove directories
.map(File::toString) // convert files to Strings
.collect(Collectors.toList()); // to return a list of Strings