C# 检索blob文件名

C# 检索blob文件名,c#,asp.net,azure,azure-storage-blobs,C#,Asp.net,Azure,Azure Storage Blobs,所以我试图检索blob存储中的文件的详细信息。这种想法是,客户要求将与他们相关的文档放在他们的门户上 这是一次迁移,当前文件以以下格式列在网格中: 文件名、文件大小、文件类型、下载链接 我遇到的问题是检索blob属性 下面是我目前拥有的代码片段 public void BindGridDocuments() { var storageAccount = CloudStorageAccount.Parse(ConfigurationManager.ConnectionStrings["St

所以我试图检索blob存储中的文件的详细信息。这种想法是,客户要求将与他们相关的文档放在他们的门户上

这是一次迁移,当前文件以以下格式列在网格中:

文件名、文件大小、文件类型、下载链接

我遇到的问题是检索blob属性

下面是我目前拥有的代码片段

public void BindGridDocuments()
{
    var storageAccount = CloudStorageAccount.Parse(ConfigurationManager.ConnectionStrings["StorageConnection"].ConnectionString);
    var blobStorage = storageAccount.CreateCloudBlobClient();
    CloudBlobContainer container = blobStorage.GetContainerReference("documents");
    var documentCollection = container.ListBlobs();
    foreach (var document in documentCollection)
    {
        string filename = document.Uri.ToString();

    }
}

试试这个代码。代码假定blob容器中的所有blob都是block blob类型

存储客户端库2.0:
CloudStorageAccount-storageAccount=CloudStorageAccount.DevelopmentStorageAccount;
CloudBlobContainer blobContainer=storageAccount.CreateCloudBlobClient().GetContainerReference(“图像”);
var blobs=blobContainer.ListBlobs(null、true、BlobListingDetails.All).Cast();
foreach(BLOB中的var blockBlob)
{
Console.WriteLine(“名称:”+blockBlob.Name);
Console.WriteLine(“大小:”+blockBlob.Properties.Length);
Console.WriteLine(“内容类型:”+blockBlob.Properties.ContentType);
控制台.WriteLine(“下载位置:“+blockBlob.Uri”);
Console.WriteLine(“====================================================”);
}
存储客户端库1.7:
CloudStorageAccount-storageAccount=CloudStorageAccount.DevelopmentStorageAccount;
CloudBlobContainer blobContainer=storageAccount.CreateCloudBlobClient().GetContainerReference(“图像”);
var blobs=blobContainer.ListBlobs(新BlobRequestOptions()
{
BlobListingDetails=BlobListingDetails.All,
UseFlatBlobListing=true,
}).Cast();
foreach(BLOB中的var blockBlob)
{
Console.WriteLine(“名称:”+blockBlob.Name);
Console.WriteLine(“大小:”+blockBlob.Properties.Length);
Console.WriteLine(“内容类型:”+blockBlob.Properties.ContentType);
控制台.WriteLine(“下载位置:“+blockBlob.Uri”);
Console.WriteLine(“====================================================”);
}

document.Uri应该包含文件名。你需要去掉它。你到底需要检索什么?我猜我可以从uri中提取文件名。如果可能的话,我也想知道文件的大小。现在有一个小问题,下载位置会返回这个错误消息:我现在已经修复了。这只是blob存储中的文件名有问题。
        CloudStorageAccount storageAccount = CloudStorageAccount.DevelopmentStorageAccount;
        CloudBlobContainer blobContainer = storageAccount.CreateCloudBlobClient().GetContainerReference("images");
        var blobs = blobContainer.ListBlobs(null, true, BlobListingDetails.All).Cast<CloudBlockBlob>();
        foreach (var blockBlob in blobs)
        {
            Console.WriteLine("Name: " + blockBlob.Name);
            Console.WriteLine("Size: " + blockBlob.Properties.Length);
            Console.WriteLine("Content type: " + blockBlob.Properties.ContentType);
            Console.WriteLine("Download location: " + blockBlob.Uri);
            Console.WriteLine("=======================================");
        }
        CloudStorageAccount storageAccount = CloudStorageAccount.DevelopmentStorageAccount;
        CloudBlobContainer blobContainer = storageAccount.CreateCloudBlobClient().GetContainerReference("images");
        var blobs = blobContainer.ListBlobs(new BlobRequestOptions()
            {
                BlobListingDetails = BlobListingDetails.All,
                UseFlatBlobListing = true,
            }).Cast<CloudBlockBlob>();
        foreach (var blockBlob in blobs)
        {
            Console.WriteLine("Name: " + blockBlob.Name);
            Console.WriteLine("Size: " + blockBlob.Properties.Length);
            Console.WriteLine("Content type: " + blockBlob.Properties.ContentType);
            Console.WriteLine("Download location: " + blockBlob.Uri);
            Console.WriteLine("=======================================");
        }