0
  // 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

当我尝试获取 Azure 文件共享的 LastModified 属性时,我得到了 null。

4

1 回答 1

2

原因是每次调用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上阅读更多内容。

于 2018-08-27T09:41:28.960 回答