How to get a list of all folders in an container in Blob Storage?
Instead of passing true
as the value to the bool useFlatBlobListing
parameter as documented here pass false
. That will give you only the toplevel subfolders and blobs in the container
useFlatBlobListing (Boolean)
A boolean value that specifies whether to list blobs in a flat listing, or whether to list blobs hierarchically, by virtual directory.
To further reduce the set to list only toplevel folders you can use OfType
public async Task<List<CloudBlobDirectory>> GetFullBlobsAsync()
{
var blobList = await Container.ListBlobsSegmentedAsync(string.Empty, false, BlobListingDetails.None, int.MaxValue, null, null, null);
return (from blob in blobList
.Results
.OfType<CloudBlobDirectory>()
select blob).ToList();
}
This will return a collection of CloudBlobDirectory instances. They in turn also provide the ListBlobsSegmentedAsync
method so you can use that one to get the blobs inside that directory.
By the way, since you are not really using segmentation why not using the simpler ListBlobs
method than ListBlobsSegmentedAsync
?