如何使用C#获取Azure容器虚拟文件夹中的文件

时间:2018-07-30 17:56:09

标签: c# azure azure-storage-blobs

我已对此进行了审查: Getting list of names of Azure blob files in a container?

https://feedback.azure.com/forums/287593-logic-apps/suggestions/16252474-list-files-in-folder-on-azure-blob-storage

但是我还没有找到任何有关如何使用c#列出容器中特定虚拟文件夹中文件的代码示例。据我所知。我看不到在ListBlobs()方法中指定文件路径的任何方法。

        var blobStorageAccount = GetStorageAccount();
        var blobClient = blobStorageAccount.CreateCloudBlobClient();
        var blobContainer = blobClient.GetContainerReference(containerName);
        List<string> blobNames = blobContainer.ListBlobs().OfType<CloudBlockBlob>().Select(b => b.Name).ToList();

2 个答案:

答案 0 :(得分:2)

没有子文件夹之类的东西。您有包含斑点的容器。您确实拥有虚拟文件夹,例如

/container/virtualfolder/myblob

容器名称为container,blob名称为virtualfolder/myblob

您可以使用prefix参数列出虚拟文件夹中的所有blob(请参见the docs):

        var blobStorageAccount = GetStorageAccount();
        var blobClient = blobStorageAccount.CreateCloudBlobClient();
        var blobContainer = blobClient.GetContainerReference(containerName);
        List<string> blobNames = blobContainer.ListBlobs(prefix: "virtualfolder").OfType<CloudBlockBlob>().Select(b => b.Name).ToList();

答案 1 :(得分:0)

Microsoft.Azure.Storage.Blob已过时。使用Azure.Storage.Blob看起来像是:

List<string> blobNames = blobContainer.GetBlobs(prefix: "virtualfolder").Select(b => b.Name).ToList();