我正在研究这种方法:FileSystem.listFiles(Path f, boolean recursive)
列出给定路径中文件的状态和阻止位置。如果路径是目录,如果recursive为false,则返回目录中的文件;如果recursive为true,则返回以该路径为根的子树中的文件。如果路径是文件,则返回文件的状态和块位置。
我正在测试该方法,似乎它没有返回给定目录的子目录。这是设计的(似乎它虽然它的java.io对手不是这样工作)?如果这个限制是设计的,那么如果我想列出所有子目录,还有什么选择呢?
另一种方法FileSystem.listStatus(Path f)
也没有返回子目录的状态。我错过了什么?
答案 0 :(得分:2)
你得到任何类型的错误/异常吗?
您可能使用了以下代码:
FileStatus[] status = fs.listStatus(path);
for (int i=0;i<status.length;i++){
FSDataInputStream fSDataInputStream = fs.open(status[i].getPath());
}
答案 1 :(得分:0)
如果您需要列出子目录和文件,请使用FileSystem.listLocatedStatus而不是FileSystem.listStatus