这是方法
public List<Path> listAllPaths() throws IOException {
Files.walk(Paths.get("/tmp")).forEach(e -> System.out.println(e.toString()));
return Files.walk(Paths.get(filePath)).collect(Collectors.toList());
}
当我执行此方法时,我看到只打印/返回了/ tmp 我希望看到
中的所有子目录和文件Javadocs说
&#34;通过遍历以给定起始文件为根的文件树,返回一个懒惰填充Path的Stream。文件树遍历深度优先,流中的元素是Path对象,它们就像通过解析相对路径来获得一样。&#34;
答案 0 :(得分:3)
这是一个符号链接,而不是真正的路径:
Path p = Paths.get("/tmp");
System.out.println(Files.isSymbolicLink(p)); // returns true
真实路径为/private/tmp
你可以做一个
ls -l
并查看某些文件夹归 _mbsetupuser 用户所有。
您还可以通过以下方式在评论中按照建议行走符号链接:
Files.walk(Paths.get("/tmp"), FileVisitOption.FOLLOW_LINKS)