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

Edw*_*gby 3 c# azure azure-blob-storage

我已经回顾过这一点: 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();
Run Code Online (Sandbox Code Playgroud)

Pet*_*ons 6

不存在子文件夹之类的东西。您有包含 blob 的容器。例如,您确实有虚拟文件夹

/container/virtualfolder/myblob
Run Code Online (Sandbox Code Playgroud)

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

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

        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();
Run Code Online (Sandbox Code Playgroud)