Hadoop - FileSystem.listFiles - 不列出目录

pet*_*rov 11 hadoop hdfs

我在看这个方法: FileSystem.listFiles(Path f, boolean recursive)

列出给定路径中文件的状态和块位置.如果路径是目录,如果recursive为false,则返回目录中的文件; 如果recursive为true,则返回以该路径为根的子树中的文件.如果路径是文件,则返回文件的状态和块位置.

我正在测试该方法,它似乎没有返回给定目录的子目录.这是设计(似乎虽然它的java.io对应物不起作用)?如果这个限制是设计的,那么如果我想列出所有子目录,还有什么选择呢?

另一种方法FileSystem.listStatus(Path f)也不是返回子目录的状态.我错过了什么?

小智 5

您是否遇到任何类型的错误/异常?

您可能使用过以下代码:

FileStatus[] status = fs.listStatus(path);
for (int i=0;i<status.length;i++){
    FSDataInputStream fSDataInputStream = fs.open(status[i].getPath());
}
Run Code Online (Sandbox Code Playgroud)