列出 Blob 中的文件?

Listing the files, which are inside a Blob?

刚开始使用 Windows AzureMapreduce。我已经在 Azure Portal 中创建了一个 HDInsight 集群,并且还使用名为 BlobFilesAzure Explorer 创建了一个 Block Blob

我想知道的是,有没有一种方法可以列出 Blob 中的所有文件,而 Blob 中又包含 Blob Container 中的所有文件?换句话说,如果我将文本文件和图像上传到同一个 Blob,我如何以编程方式或以其他方式列出这些文本文件和图像?

已搜索解决方案,但仍未找到解决方案。我可以使用 Azure Explorer 单独查看文件的内容,但无法找到查看或显示特定 Blob!

中的文件的方法

已编辑: 这就是我试图显示 Blob 的内容:

        // Retrieve storage account from connection string.
        CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
            CloudConfigurationManager.GetSetting("StorageConnectionString"));

        // Create the blob client.
        CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();

        // Retrieve reference to a previously created container.
        CloudBlobContainer container = blobClient.GetContainerReference("fyptest1");

        // Retrieve reference to a blob named "myblob".
        CloudBlockBlob blockBlob = container.GetBlockBlobReference("myblob");

        lboxblob.ItemsSource = container.ListBlobs();//lboxblob is the name of my listbox

当我尝试上面的代码时,它多次显示类似 Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob 的内容,依此类推。

如有任何帮助,我们将不胜感激。

每个 Azure 存储 "blob" 是一个 "file." 您最有可能在 "blob container," 中列出 "blobs"。

为此,请使用 CloudBlobContainer.ListBlobs() 方法。

https://msdn.microsoft.com/en-us/library/azure/dd135734.aspx

这是因为绑定最终会在每个返回的列表项上调用 ToString,它只显示类型名称。如果您想在列表框中看到 URI,请将最后一行更改为:

lboxblob.ItemsSource = container.ListBlobs().Select(b => b.Uri);

但请参阅其他答案以获得正确的术语。正如其他人提到的,blob 不包含文件等其他对象。