从C#中读取Azure blob存储中的文件

时间:2017-05-26 13:20:35

标签: c# azure blob azure-storage-blobs

我在Azure存储中有Blob容器,然后是文件夹,然后是子文件夹,然后是不同的文件(@Cacheable)。 如何读取ContainerName/Folder1/Subfolder1/files...目录中的所有文件?假设我有一些pdf文件,我需要在我的应用程序中获取它们,我该怎么做?

1 个答案:

答案 0 :(得分:7)

嗯,这不是一个真正的子文件夹,它只是一条路径。

正如documentation for ListBlobs所说:

  

您可以选择指定blob前缀以列出名称以相同字符串开头的blob。如果在blob名称中使用分隔符来创建虚拟目录结构,则blob前缀可以包括全部或部分虚拟目录结构(但不包括容器名称)。

因此,您可以使用-中的传递作为前缀:

Folder1/Subfolder1

注意:我不记得是否需要前缀或尾部斜杠或两者兼而有之..

var container = blobClient.GetContainerReference(containerName); foreach (var file in container.ListBlobs(prefix: "Folder1/Subfolder1", useFlatBlobListing: true)) { // etc 参数确保只有以参数值开头的blob名称才会作为列表的一部分返回。 prefix参数将确保如果在前缀中指定的子文件夹内的嵌套文件夹中有任何blob也会返回。