2017-02-22 46 views
0

我想创建文件夹和子文件夹,我发现this workaround: 但是当我列出了他们:使用此代码(source):Azure API为什么不列出名为/ folder/folder/file的blob?

foreach (IListBlobItem item in Container.ListBlobs(null, false)) 
      { 
       if (item.GetType() == typeof(CloudBlockBlob)) 
       { 
        CloudBlockBlob blob = (CloudBlockBlob)item; 

        Console.WriteLine("Block blob of length {0}: {1}", blob.Properties.Length, blob.Uri); 

       } 
       else if (item.GetType() == typeof(CloudPageBlob)) 
       { 
        CloudPageBlob pageBlob = (CloudPageBlob)item; 

        Console.WriteLine("Page blob of length {0}: {1}", pageBlob.Properties.Length, pageBlob.Uri); 

       } 
       else if (item.GetType() == typeof(CloudBlobDirectory)) 
       { 
        CloudBlobDirectory directory = (CloudBlobDirectory)item; 

        Console.WriteLine("Directory: {0}", directory.Uri); 
       } 
      } 

只显示在根容器的父文件夹和斑点。 我期待让他们所有的斑点,因为这是虚拟目录不实, ,比如我有这个文件

https://account.blob.core.windows.net/container/Accounts/Images/1/acc.jpg 

,但它并不显示,它只是表明:

https://account.blob.core.windows.net/container/Accounts 

https://account.blob.core.windows.net/container/anyfile 

我是否必须请求父文件夹内的子文件夹才能到达文件?

回答

2

请尝试在ListBlobs方法中指定第二个参数为true。此参数指示您是否想要平整blob列表(true)或分层blob列表(false)。

从文档链接:

useFlatBlobListing

类型:System.Boolean

指定是否列出斑点在平面 上市,或者是否列出一个布尔值blob分层次,虚拟 目录。