如何获取具有父 DataLakeDirectoryClient class 实例的子 files/directories 列表

How to get list of child files/directories having parent DataLakeDirectoryClient class instance

我必须扫描整个数据湖文件系统。有这样的代码:

PagedIterable<PathItem> pItems = ((DataLakeFileSystemClient)prmParent).listPaths();
for( PathItem pItem : pItems ){
  if pItem.isDirectory() ){
    ((DataLakeFileSystemClient)prmParent).getDirectoryClient(pItem.getName());
  } else {
    ((DataLakeFileSystemClient)prmParent).getFileClient(pItem.getName());
  }
}

我获得了顶级 dirs/files。但是要向下钻取,DataLakeDirectoryClient class 中必须有方法 listChild()。 但我没有发现任何类似的东西。 有人知道穿过树的正确方法是什么吗?

谢谢。谢尔盖

如果要列出Azure Data Lake gen2文件系统中的所有路径,请参考以下代码

 StorageSharedKeyCredential credential = new StorageSharedKeyCredential(accountName, accountKey);
        String endpoint = String.format(Locale.ROOT, "https://%s.dfs.core.windows.net", accountName);
        DataLakeServiceClient storageClient = new DataLakeServiceClientBuilder()
                .endpoint(endpoint)
                .credential(credential)
                .buildClient();

        DataLakeFileSystemClient dataLakeFileSystemClient = storageClient.getFileSystemClient("test");
        ListPathsOptions options = new ListPathsOptions();
        options.setRecursive(true);
        PagedIterable<PathItem> pItems = dataLakeFileSystemClient.listPaths(options,null);

        for( PathItem pItem : pItems ){
            if(pItem.isDirectory()) {
                System.out.println("The directory: " +pItem.getName());
            }else{
                System.out.println("The file : " +pItem.getName());
            }
        }

详情请参考here