Нулевое значение для свойства общего доступа к файлам Azure LastModified
// Get list of all files/directories on the file share
CloudStorageAccount cloudStorageAccount = CloudStorageAccount.Parse(ConfigurationManager.AppSettings["storageConnectionString"]);
CloudFileClient fileClient = cloudStorageAccount.CreateCloudFileClient();
CloudFileShare fileShare = fileClient.GetShareReference(ConfigurationManager.AppSettings["shareName"]);
var sourceName = fileShare.GetRootDirectoryReference().GetDirectoryReference((ConfigurationManager.AppSettings["sourceName"]));
var test = sourceName.Properties.LastModified;
Но sourceName.Properties.LastModified is null
четное fileShare.Properties.LastModified is null
Я получаю нулевое значение, когда пытаюсь получить свойство LastModified общей папки Azure.
1 ответ
Причина в том, что каждый раз, когда вы звоните GetRootDirectoryReference()
вы создаете новый экземпляр FileItem
, вызывая в его свойствах инициализацию к его значению по умолчанию, так же, как при использовании GetBlockBlobReference()
,
Что вам нужно сделать, это позвонить FetchAttributes
на это, чтобы заполнить все свойства.
Обратите внимание, что при получении свойств вам не нужно создавать новый экземпляр вашего объекта.
Вы можете следить за этим постом, который ссылается на BLOB-объекты, но также касается и вашей ошибки.
Пример, как вы просили, будет:
public static void ListContainerMetadataAsync(CloudBlobContainer container)
{
// Fetch container attributes in order to populate the container's
properties and metadata.
container.FetchAttributes();
// Enumerate the container's metadata.
Console.WriteLine("Container metadata:");
foreach (var metadataItem in container.Metadata)
{
Console.WriteLine("\tKey: {0}", metadataItem.Key);
Console.WriteLine("\tValue: {0}", metadataItem.Value);
}
}
Вы можете прочитать больше на docs.microsoft.