如何获取具有父 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
我必须扫描整个数据湖文件系统。有这样的代码:
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