hadoop-filesystem.listfiles-不列出目录

m0rkklqb  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(327)

我正在研究这个方法: FileSystem.listFiles(Path f, boolean recursive) 列出给定路径中文件的状态和块位置。如果路径是目录,如果recursive为false,则返回目录中的文件;如果recursive为true,则返回以路径为根的子树中的文件。如果路径是文件,则返回文件的状态和块位置。
我正在测试这个方法,它似乎没有返回给定目录的子目录。这是设计上的吗(虽然java.io的对应项不是这样工作的)?如果这个限制是设计的,那么如果我也想列出所有的子目录,还有什么选择呢?
另一种方法 FileSystem.listStatus(Path f) 也不返回子目录的状态。我错过了什么?

hujrc8aj

hujrc8aj1#

如果需要列出子目录和文件,请使用filesystem.listlocatedstatus而不是filesystem.liststatus

bgtovc5b

bgtovc5b2#

你有什么错误/异常吗??
您可能使用了以下代码:

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

相关问题