2016-10-27 2 views
0

я получаю нуль, когда я пытаюсь принести LastModified свойства Azure Blob, ниже фрагмент кода для тех же.Получения нулевого значения для Azure 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. Заранее благодарим за любую помощь.

ответ

1

Причина вы получаете такое поведение, потому что, когда вы выполняете следующую строку кода:

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

Это в первую очередь создает новый экземпляр CloudBlockBlob объекта и его свойства инициализируются значением по умолчанию. Вам нужно будет вызвать метод FetchAttributes, чтобы заполнить свойства.

Также, когда вы указываете капли, свойства blob также выбираются. Поэтому вам не нужно создавать новый экземпляр CloudBlockBlob. Просто используйте объект blob, который вы получили как результат листинга, и используйте свойства оттуда. Так что ваш код будет:

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

Получение ниже исключения на blockBlob.FetchAttributes() –

+0

Исключение типа «Microsoft.WindowsAzure.Storage.StorageException» произошло в Microsoft.WindowsAzure.Storage.dll, но не обрабатывается пользователем код Дополнительная информация: Удаленный сервер возвратил ошибку: (404) Не найдено. –

+0

Вместо использования 'blob.ToString()', найдите имя blob и используйте это. Предполагая, что все ваши блобы имеют тип 'BlockBlob', вы можете сделать что-то вроде' container.GetBlockBlobReference ((blob as CloudBlockBlob) .Name) '. ** Обратите внимание, что когда вы вызываете 'FetchAttributes', вы делаете запрос в хранилище Azure для получения информации, которая уже существует в вашем объекте' blob'. ** –

Смежные вопросы