Files.walk跳过目​​录

时间:2016-11-17 00:51:09

标签: java nio

我正在尝试在我的外部高清中递归地编写列表文件的程序,但是有一个我无法访问的回收站文件夹。我想跳过文件夹,但似乎无法做到。

下面这段代码有什么问题吗?

public static void main(String[] args) throws Exception
{
    String path = "K:\\";

    Files.walk(Paths.get(path))
            .filter(it -> !it.toString().startsWith("K:\\$RECYCLE.BIN"))
            .filter(Files::isRegularFile)
            .forEach(System.out::println);
}

它一直给我这个错误:

Exception in thread "main" java.io.UncheckedIOException java.nio.file.AccessDeniedException: K:\$RECYCLE.BIN\S-1-5-21-684815243-3314879918-332412784-1001
    at java.nio.file.FileTreeIterator.fetchNextIfNeeded(FileTreeIterator.java:88)
    at java.nio.file.FileTreeIterator.hasNext(FileTreeIterator.java:104)
    ...

1 个答案:

答案 0 :(得分:2)

您的代码没有任何问题,这是Files.walk的设计问题。有关详细信息,请参阅this answer