You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Azure.Storage.Blobs库列出ADLS容器的第一级目录

解决方案

对于启用了分层命名空间的Azure Data Lake Storage,不要使用GetBlobs()方法拉取全量Blob,改用专门适配层级结构的GetBlobsByHierarchy方法即可实现非递归的第一级目录查询,示例代码如下:

using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;

// 你的业务逻辑
public IList<string> GetFirstLevelFolders(BlobServiceClient blobServiceClient)
{
    var blobContainerClient = blobServiceClient.GetBlobContainerClient("foo");
    IList<string> firstLevelFolders = new List<string>();

    // 指定分隔符为/,prefix为空代表从容器根目录开始遍历
    var resultSegment = blobContainerClient.GetBlobsByHierarchy(delimiter: "/").AsPages();

    foreach (Azure.Page<BlobHierarchyItem> blobPage in resultSegment)
    {
        foreach (var hierarchyItem in blobPage.Values)
        {
            // IsPrefix为true对应目录项
            if (hierarchyItem.IsPrefix)
            {
                // 去掉路径末尾的/,直接返回目录名
                firstLevelFolders.Add(hierarchyItem.Prefix.TrimEnd('/'));
            }
        }
    }

    return firstLevelFolders;
}

说明

  • GetBlobsByHierarchy方法通过delimiter参数控制遍历层级,指定为/时只会返回当前层级的内容,不会递归拉取子目录下的文件和目录
  • 返回结果中的BlobHierarchyItem包含两种类型:IsPrefix = true对应目录,IsBlob = true对应当前层级下的文件,如果你需要同时返回第一级文件,额外判断IsBlob取值即可
  • 该方法在Azure.Storage.Blobs 12.9.1版本中可直接使用,不需要额外安装其他依赖包

内容的提问来源于stack exchange,提问作者Vivere

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 12:54:02