public void CloudBlobDirectoryFlatListingWithPrefix() { foreach (String delimiter in Delimiters) { CloudBlobClient client = GenerateCloudBlobClient(); client.DefaultDelimiter = delimiter; string name = GetRandomContainerName(); CloudBlobContainer container = client.GetContainerReference(name); try { container.Create(); if (CloudBlobDirectorySetupWithDelimiter(container, delimiter)) { BlobContinuationToken token = null; CloudBlobDirectory directory = container.GetDirectoryReference("TopDir1"); List <IListBlobItem> list1 = new List <IListBlobItem>(); do { BlobResultSegment result1 = directory.ListBlobsSegmented(token); token = result1.ContinuationToken; list1.AddRange(result1.Results); }while (token != null); Assert.IsTrue(list1.Count == 3); IListBlobItem item11 = list1.ElementAt(0); Assert.IsTrue(item11.Uri.Equals(container.Uri + "/TopDir1" + delimiter + "Blob1")); IListBlobItem item12 = list1.ElementAt(1); Assert.IsTrue(item12.Uri.Equals(container.Uri + "/TopDir1" + delimiter + "MidDir1" + delimiter)); IListBlobItem item13 = list1.ElementAt(2); Assert.IsTrue(item13.Uri.Equals(container.Uri + "/TopDir1" + delimiter + "MidDir2" + delimiter)); CloudBlobDirectory midDir2 = (CloudBlobDirectory)item13; List <IListBlobItem> list2 = new List <IListBlobItem>(); do { BlobResultSegment result2 = midDir2.ListBlobsSegmented(true, BlobListingDetails.None, null, token, null, null); token = result2.ContinuationToken; list2.AddRange(result2.Results); }while (token != null); Assert.IsTrue(list2.Count == 2); IListBlobItem item41 = list2.ElementAt(0); Assert.IsTrue(item41.Uri.Equals(container.Uri + "/TopDir1" + delimiter + "MidDir2" + delimiter + "EndDir1" + delimiter + "EndBlob1")); IListBlobItem item42 = list2.ElementAt(1); Assert.IsTrue(item42.Uri.Equals(container.Uri + "/TopDir1" + delimiter + "MidDir2" + delimiter + "EndDir2" + delimiter + "EndBlob2")); } } finally { container.DeleteIfExists(); } } }
private BlobResultSegment GetNextHeartbeats(CloudBlobDirectory directory, BlobContinuationToken currentToken) { const int batchSize = 100; try { return directory.ListBlobsSegmented(useFlatBlobListing: true, blobListingDetails: BlobListingDetails.None, maxResults: batchSize, currentToken: currentToken, options: null, operationContext: null); } catch (StorageException exception) { if (exception.IsNotFound()) { return null; } else { throw; } } }