我正在尝试获取Azure Blob的LastModified属性 null ,下面是相同的代码段。
上面 blob 中提取的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; }
值不是CloudBlobDirectory。 提前感谢您的帮助。
答案 0 :(得分:3)
您获得此行为的原因是,当您执行以下代码行时:
CloudBlockBlob blockBlob = container.GetBlockBlobReference(blob.ToString());
它实际上创建了一个CloudBlockBlob
对象的新实例,它的属性被初始化为默认值。您需要在此处调用FetchAttributes
方法来填充属性。
此外,列出blob时,也会获取blob的属性。因此,您无需创建CloudBlockBlob
的新实例。只需使用您获得的blob
对象作为列表结果,并使用其中的属性。所以你的代码是:
foreach (var blob in blobs)
{
var timemodified = blob.Properties.LastModified;
}
答案 1 :(得分:0)
对于使用较新版本的CloudBlockBlob
和FetchAttributes
不存在的用户,请使用DownloadAttributes
。
CloudBlockBlob blockBlob = container.GetBlockBlobReference(blob.ToString());
blockBlob.DownloadAttributes();
var timemodified = blockBlob.Properties.LastModified;