Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从C读取Azure blob存储中的文件#_C#_Azure_Blob_Azure Storage Blobs - Fatal编程技术网

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

C# 从C读取Azure blob存储中的文件#,c#,azure,blob,azure-storage-blobs,C#,Azure,Blob,Azure Storage Blobs,我在Azure存储中有一个Blob容器、一个文件夹、一个子文件夹,然后是不同的文件(ContainerName/Folder1/Subfolder1/files…)。 如何读取该子文件夹1目录中的所有文件?假设我有一些pdf文件在那里,我需要在我的应用程序中获取它们,我将如何做到这一点 嗯,它实际上不是一个子文件夹,它只是一条路径 正如政府所说: 您可以选择指定blob前缀以列出名称以相同字符串开头的blob。如果在blob名称中使用分隔符来创建虚拟目录结构,则blob前缀可以包括虚拟目录结构的

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

嗯,它实际上不是一个子文件夹,它只是一条路径

正如政府所说:

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

因此,您可以使用传入
Folder1/子文件夹1
作为前缀:

var container = blobClient.GetContainerReference(containerName);
foreach (var file in container.ListBlobs(prefix: "Folder1/Subfolder1", useFlatBlobListing: true))
{ 
    // etc
注意:我不记得前缀是否需要前导斜杠或尾随斜杠,或者两者都需要,或者两者都不需要


prefix
参数确保在列表中只返回以参数值开头的blob名称
useFlatBlobListing
参数将确保在前缀中指定的子文件夹内的嵌套文件夹中是否有任何blob也会返回。

是否要读取文件的内容或仅列出它们?另外,请告诉我们容器ACL是否设置为私有?目前我只想列出它们,容器ACL是私有的。我使用容器引用尝试了
ListBlobs()
,但它只列出了第一级的文件夹(Folder1、Folder2等,而不是子文件夹1…等)。您也可以这样尝试。您只需比我快一分钟:)。我可以更新你的答案吗?我还想提供一点信息。