【问题标题】:null value for Azure File Share property LastModifiedAzure 文件共享属性 LastModified 的空值
【发布时间】:2018-08-27 18:23:03
【问题描述】:
  // 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。

【问题讨论】:

    标签: c# azure azure-files


    【解决方案1】:

    原因是每次调用GetRootDirectoryReference() 时都会创建FileItem 的新实例,导致其属性被初始化为其默认值,与使用GetBlockBlobReference() 时的行为相同。

    您需要为此调用FetchAttributes 以填充所有属性。

    请注意,当获取属性时,您不需要创建对象的新实例。

    您可以关注此 post,它引用了 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阅读更多内容。

    【讨论】:

    • 非常感谢 :) 我可以使用下面的查询来获取子文件夹最后更新的文件吗? var latest = fileShare.GetRootDirectoryReference().ListFilesAndDirectories() .OfType() .OrderByDescending(m => m.Properties.LastModified) .ToList() .First();我有一个单独的问题你可以帮助我猜请帮助我_stackoverflow.com/questions/52035111/…
    • 是的,我相信你可以,我会尽力提供帮助:)
    • 非常感谢哦,我刚刚注意到,我刚刚将一个新文件上传到该文件夹​​,但 LastModified 仍然是旧日期,这意味着 LastModified 对于该文件夹和文件是分开的:O 怎么办现在?
    • 我想检查是否有任何新文件在 24 小时内更新到主文件夹的任何子文件夹中。
    • 我们可以使用我提到的任何 linq 查询吗?
    猜你喜欢
    • 2021-11-26
    • 2016-07-03
    • 2022-06-30
    • 1970-01-01
    • 1970-01-01
    • 2019-07-05
    • 1970-01-01
    • 2021-12-08
    • 2020-07-12
    相关资源
    最近更新 更多