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

Ale*_*xGH 2 c# blob azure azure-storage-blobs

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

stu*_*rtd 7

好吧,它不是一个真正的子文件夹,它只是一条路径.

正如ListBlobs文档所说:

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

所以你会使用传入Folder1/Subfolder1作为前缀:

var container = blobClient.GetContainerReference(containerName);
foreach (var file in container.ListBlobs(prefix: "Folder1/Subfolder1", useFlatBlobListing: true))
{ 
    // etc
Run Code Online (Sandbox Code Playgroud)

注意:我不记得前缀是需要前导或尾随斜杠还是两者都不需要..

prefix参数确保只有以参数值开头的blob名称将作为列表的一部分返回.useFlatBlobListing参数将确保如果在前缀中指定的子文件夹内的嵌套文件夹中有任何blob也会返回.

  • 你只是打了我一分钟:).如果我更新你的答案,可以吗?我想要提供更多信息. (3认同)