Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.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# 列出azure容器中所有Blob的uri_C#_.net_Azure_Azure Storage_Azure Storage Blobs - Fatal编程技术网

C# 列出azure容器中所有Blob的uri

C# 列出azure容器中所有Blob的uri,c#,.net,azure,azure-storage,azure-storage-blobs,C#,.net,Azure,Azure Storage,Azure Storage Blobs,我知道,我们可以使用以下方法获取Azure存储容器中的Blob列表: var list = fileContainer.ListBlobs(useFlatBlobListing: true); List<string> blobNames = list.OfType<CloudBlockBlob>().Select(b => b.Name).ToList(); var list=fileContainer.ListBlobs(useFlatBlobListing:

我知道,我们可以使用以下方法获取Azure存储容器中的Blob列表:

var list = fileContainer.ListBlobs(useFlatBlobListing: true);
List<string> blobNames = list.OfType<CloudBlockBlob>().Select(b => b.Name).ToList();
var list=fileContainer.ListBlobs(useFlatBlobListing:true);
List blobNames=List.OfType().Select(b=>b.Name.ToList();
那么,获取所有blob的uri列表如何

我尝试了以下操作,但失败,因为出现错误:

List<string> blobNamesUri = list.OfType<CloudBlockBlob>().Select(b => b.Name.Uri.ToString()).ToList();
List blobNamesUri=List.OfType().Select(b=>b.Name.Uri.ToString()).ToList();

问题位于
b.Name.Uri.ToString()
,Uri是CloudBlockBlob的属性,而不是名称。您应该像这样删除名称
b.Uri.ToString()
。您可能受到参数名的影响,我为您编写了一个演示,您可以直接使用它

给你:

    public static List<V> listAllBlobs<T,V>(Expression<Func<T, V>> expression, string containerName)
    {
        CloudStorageAccount storageAccount = CloudStorageAccount.Parse("DefaultEndpointsProtocol=https;AccountName=xxxx;AccountKey=xxxxx;BlobEndpoint=https://xxxxx.blob.core.windows.net/;QueueEndpoint=https://xxxxx.queue.core.windows.net/;TableEndpoint=https://xxxxxx.table.core.windows.net/;FileEndpoint=https://xxxxx.file.core.windows.net/;");

        CloudBlobClient cloudBlobClient = storageAccount.CreateCloudBlobClient();

        CloudBlobContainer container = cloudBlobClient.GetContainerReference(containerName);
        container.CreateIfNotExists();
        var list = container.ListBlobs(useFlatBlobListing: true);

        List<V> data = list.OfType<T>().Select(expression.Compile()).ToList();
        return data;
    }
公共静态列表listAllBlobs(表达式、字符串containerName)
{
CloudStorageAccount storageAccount=CloudStorageAccount.Parse(“DefaultEndpointsProtocol=https;AccountName=xxxx;AccountKey=xxxxx;BlobEndpoint=https://xxxxx.blob.core.windows.net/;队列端点=https://xxxxx.queue.core.windows.net/;表端点=https://xxxxxx.table.core.windows.net/;文件端点=https://xxxxx.file.core.windows.net/;");
CloudBlobClient CloudBlobClient=storageAccount.CreateCloudBlobClient();
CloudBlobContainer container=cloudBlobClient.GetContainerReference(containerName);
container.CreateIfNotExists();
var list=container.ListBlobs(useFlatBlobListing:true);
List data=List.OfType().Select(expression.Compile()).ToList();
返回数据;
}
用法和屏幕截图:


我尝试了你的方法,但仍然有错误。“.Select”函数有错误。@Coolguy有什么具体的消息吗?这个方法对我来说没有错误。