Azure blob文件存储在没有任何物理文件夹结构的普通列表中,但我们可以创建虚拟文件夹,其中每个文件的文件夹路径都是其名称的一部分.
它带来了另一个问题,如何仅使用该文件夹的名称检索虚拟子文件夹中的所有文件列表?
我想要容器中 Azure Blob 文件中的所有名称(出于某种目的)。我发现了一些类似的问题,甚至是 stackoverflow.com 上的一个问题(获取容器中 Azure blob 文件的名称列表?)。但所有这些答案都首先使用 ListBlobs() 方法。这就是我想要防止的,因为有 24,000 个文件,大约需要 10 分钟才能将所有文件存储在列表中并从每个文件接收名称。我现在在 C# 中使用的方法:
var container = GetOrCreateBlobContainer(containerName);
var blobs = container.ListBlobs(useFlatBlobListing: true);
var blobNames = blobs.OfType<CloudBlockBlob>().Select(b => b.Name).ToList();
return blobNames;
Run Code Online (Sandbox Code Playgroud)
我想要什么:直接从存储中获取所有名称,而无需先使用 container.ListBlobs()。
这可能吗??
我已经回顾过这一点: Getting list of names of Azure blob files in a container?
但我还没有找到任何关于如何使用 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)