Varun Bajpai Varun Bajpai - 9 months ago 57
C# Question

Getting null value for Azure blob last modified property

I'm getting null when I'm trying to fetch LastModified property of Azure Blob, below is the snippet for the same.

CloudStorageAccount storageAccount = CloudStorageAccount.Parse("account");
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("folder");
var blobs = container.ListBlobs();
foreach (var blob in blobs)
CloudBlockBlob blockBlob =container.GetBlockBlobReference(blob.ToString());
var timemodified = blockBlob.Properties.LastModified;

value fetched in blob above is not a CloudBlobDirectory.
Thanks in advance for any help.

Answer Source

Reason you're getting this behavior is because when you execute following line of code:

CloudBlockBlob blockBlob = container.GetBlockBlobReference(blob.ToString());

It essentially creates a new instance of CloudBlockBlob object and it's properties are initialized to the default value. You would need to call FetchAttributes method on this to fill the properties.

Also, when you list the blobs the properties of the blob are fetched as well. So you need not create a new instance of CloudBlockBlob. Simply use the blob object you got as listing result and use the properties from there. So your code would be:

        foreach (var blob in blobs)
            var timemodified = blob.Properties.LastModified;