Ваш код на самом деле избыточен.Сначала нет необходимости перечислять каталоги в контейнере BLOB-объектов, поскольку в хранилище BLOB-объектов Azure есть только два уровня: контейнеры и BLOB-объекты, каталог - это просто виртуальная концепция, которой на самом деле не существует на стороне службы.
Ниже приведен упрощенный код:
public List<string> GetBlobUris(string containerName, string blobNamePrefix = "")
{
List<string> uriList = new List<string>();
var container = GetBlobContainer(containerName);
List<CloudBlockBlob> cloudBlockBlobs = GetBlobs(containerName, blobNamePrefix);
foreach (var cloudBlockBlob in cloudBlockBlobs)
{
uriList.Add(cloudBlockBlob.Uri.ToString());
}
return uriList;
}
public List<CloudBlockBlob> GetBlobs(string containerName, string blobNamePrefix = "")
{
var container = GetBlobContainer(containerName);
return container.ListBlobs().OfType<CloudBlockBlob>().Where(b => b.Name.StartsWith(blobNamePrefix)).ToList();
}