获取Azure blob上次修改的属性的空值

当我尝试获取Azure Blob的LastModified属性时,我得到null ,下面是相同的片段。

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; } 

在上面的blob中获取的值不是CloudBlobDirectory。 在此先感谢您的帮助。

您获得此行为的原因是因为执行以下代码行时:

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

它实际上创建了一个新的CloudBlockBlob对象实例,并将其属性初始化为默认值。 您需要在此上调用FetchAttributes方法来填充属性。

此外,当您列出blob时,也会获取blob的属性。 因此,您无需创建CloudBlockBlob的新实例。 只需使用您获得的blob对象作为列表结果并使用那里的属性。 所以你的代码是:

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