Recursively list files in Java

后端 未结 27 1600
走了就别回头了
走了就别回头了 2020-11-22 00:29

How do I recursively list all files under a directory in Java? Does the framework provide any utility?

I saw a lot of hacky implementations. But none from the fra

27条回答
  •  名媛妹妹
    2020-11-22 00:45

    base on @Michael answer, add check whether listFiles return null

    static Stream files(File file) {
        return file.isDirectory()
                ? Optional.ofNullable(file.listFiles()).map(Stream::of).orElseGet(Stream::empty).flatMap(MainActivity::files)
                : Stream.of(file);
    }
    

    or use Lightweight-Stream-API, which support Android5 & Android6

    static Stream files(File f) {
        return f.isDirectory() ? Stream.ofNullable(f.listFiles()).flatMap(MainActivity::files) : Stream.of(f);
    }
    

提交回复
热议问题