【问题标题】:Hadoop - FileSystem.listFiles - not listing directoriesHadoop - FileSystem.listFiles - 不列出目录
【发布时间】:2014-08-24 15:11:12
【问题描述】:

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

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

我正在测试该方法,但它似乎没有返回给定目录的子目录。这是设计使然(似乎它的 java.io 对应物不能那样工作)?如果该限制是设计使然,那么如果我也想列出所有子目录,还有哪些选择?

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

【问题讨论】:

    标签: hadoop hdfs


    【解决方案1】:

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

    您可能使用过以下代码:

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

    【讨论】:

      【解决方案2】:

      如果您需要列出子目录和文件,请使用 FileSystem.listLocatedStatus 而不是 FileSystem.listStatus

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多