CloudBlobClient.ListContainersSegmented Method (String, ContainerListingDetails, Int32, ResultContinuation)

Storage Client Library NET API

[This topic is part of the Microsoft Azure Storage Client Library 1.7, which has been deprecated. See Storage Client Library for the latest version.]

Returns a result segment containing a collection of containers whose names begin with the specified prefix. Use this overload when you want to control the maximum number of results returned at a time, and when you want to use a continuation token to determine whether there are more results to return from the service after the current page completes, and when you want to control which details to include when listing the containers in this storage account.

Namespace: Microsoft.WindowsAzure.StorageClient
Assembly: Microsoft.WindowsAzure.StorageClient (in Microsoft.WindowsAzure.StorageClient.dll)

Usage

Visual Basic
Dim instance As CloudBlobClient
Dim prefix As String
Dim detailsIncluded As ContainerListingDetails
Dim maxResults As Integer
Dim continuationToken As ResultContinuation
Dim returnValue As ResultSegment(Of CloudBlobContainer)

returnValue = instance.ListContainersSegmented(prefix, detailsIncluded, maxResults, continuationToken)

Syntax

Visual Basic
Public Function ListContainersSegmented ( _
	prefix As String, _
	detailsIncluded As ContainerListingDetails, _
	maxResults As Integer, _
	continuationToken As ResultContinuation _
) As ResultSegment(Of CloudBlobContainer)
C#
public ResultSegment<CloudBlobContainer> ListContainersSegmented (
	string prefix,
	ContainerListingDetails detailsIncluded,
	int maxResults,
	ResultContinuation continuationToken
)
C++
public:
ResultSegment<CloudBlobContainer^>^ ListContainersSegmented (
	String^ prefix, 
	ContainerListingDetails detailsIncluded, 
	int maxResults, 
	ResultContinuation^ continuationToken
)
J#
JScript

Parameters

prefix

Type: System.String

The container name prefix.

detailsIncluded

Type: Microsoft.WindowsAzure.StorageClient.ContainerListingDetails

A value that indicates whether to return container metadata with the listing.

maxResults

Type: System.Int32

A non-negative integer value that indicates the maximum number of results to be returned in the result segment, up to the per-operation limit of 5000. If this value is zero, the maximum possible number of results will be returned.

continuationToken

Type: Microsoft.WindowsAzure.StorageClient.ResultContinuation

A continuation token returned by a previous listing operation.

Return Value

Type: Microsoft.WindowsAzure.StorageClient.ResultSegment

A result segment of containers.

Example

The following code example lists containers beginning with the specified prefix, in pages of 10.

C# Copy Code
static void ListContainersInSegments(Uri blobEndpoint, string accountName, string accountKey)
{
    //Create service client for credentialed access to the Blob service.
    CloudBlobClient blobClient = 
        new CloudBlobClient(blobEndpoint, new StorageCredentialsAccountAndKey(accountName, accountKey));

    //Return the first segment of 10 containers in the account.
    ResultSegment<CloudBlobContainer> resultSegment = 
        blobClient.ListContainersSegmented("my", ContainerListingDetails.None, 10, null);

    //Print container names to the console.
    WriteContainersInResultSegment(resultSegment);

    //Check HasMoreResults to determine whether the page is complete.
    if (resultSegment.HasMoreResults)
    {
        //Get the rest of the results in the page.
        resultSegment = resultSegment.GetNext();

        //Print container names to the console.
        WriteContainersInResultSegment(resultSegment);
    }

    //After the page is complete, check the continuation token to determine whether there are more 
    //results on the server.
    while (resultSegment.ContinuationToken != null)
    {
        resultSegment = resultSegment.GetNext();

        //Print container names to the console.
        WriteContainersInResultSegment(resultSegment);
    }
    }

static void WriteContainersInResultSegment(ResultSegment<CloudBlobContainer> resultSegment)
{
    foreach (var container in resultSegment.Results)
    {
        Console.WriteLine(container.Name);
    }
}

Remarks

The ListContainersSegmented method begins an operation to list containers in pages. A page is set of results of a specified size; it is represented by the ResultSegment class. By returning containers in pages, you can control the number of containers returned per operation. This may be useful if, for example, you are displaying a web page with some predefined number of containers on it.

To specify the page size to return, pass in a non-zero value for the maxResults parameter. Passing in zero for the maxResults parameter returns either the maximum number of results available, or the per-operation limit of 5000 results.

If you have specified a page size, you can check the HasMoreResults property to check whether the page is complete. If HasMoreResults is true, the complete page has not been returned for some reason. Call GetNext to return the remaining results in the page.

Note that if you have not specified a page size, HasMoreResults will always be false.

Check the value of the ContinuationToken property to determine whether there are more results to return from the service after the page is complete. The continuation token is non-null as long as there are more results to return from the service. If the page is complete, then HasMoreResults will be false, but if the continuation token is non-null, there are additional results to return beyond that page.

Call the GetNext method to return the next segment of results from the service.


Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Platforms

Development Platforms

Windows Vista, Windows 7, Windows Server 2008, Windows 8.1, Windows Server 2012 R2, Windows 8 and Windows Server 2012

Change History

See Also