Search code examples
c#azure-blob-storagevirtual-directory

How do I list blobs contained in a directory Azure


So I am trying to list blobs contained in a virtual folder let's call it "VF"

I have tried many methods for example:

var storageAccount = CloudStorageAccount.Parse("...");

var blobClient = storageAccount.CreateCloudBlobClient();

var container = blobClient.GetContainerReference("Container_Name");

List<IListBlobItem> blobslist = container.ListBlobsSegmentedAsync("VF", true).ToList();

But I receive errors like:

Error: Argument 2: cannot convert from 'bool' to 'Microsoft.WindowsAzure.Storage.Blobl.BlobContinuationToken"}

I am trying to return file contents using an API, is this why I am receiving trouble and am using the incorrect methods?

Any help is greatly appreciated


Solution

  • You need to implement the usage of BlobContinuationToken correctly.

    Try it like this

    if (CloudStorageAccount.TryParse(connectionString, out CloudStorageAccount storageAccount))
    {
        var context = new OperationContext();
        var options = new BlobRequestOptions();
        var cloudBlobClient = storageAccount.CreateCloudBlobClient();
        var cloudBlobContainer = cloudBlobClient.GetContainerReference(blobContainerName);
        BlobContinuationToken blobContinuationToken = null;
        do
        {
            var results = await cloudBlobContainer.ListBlobsSegmentedAsync(null, true, BlobListingDetails.All,
                null, blobContinuationToken, options, context);
            blobContinuationToken = results.ContinuationToken;
            foreach (var item in results.Results)
            {
                //do what you want with each blob
            }
        } while (blobContinuationToken != null);
    }