【发布时间】:2017-08-25 10:44:15
【问题描述】:
有多个 blob,已将每个 blob 的名称提取到一个列表中,其中包含其最后修改日期。 已经设置了下载路径,然后运行以下代码,其中 kvp.Key 是每个 blob 的名称。我的想法是我可以循环每个文件名并下载它:
foreach (KeyValuePair<string, DateTimeOffset?> kvp in to_be_dl)
{
Console.WriteLine("Downloading: " + kvp.Key);
//Console.WriteLine(kvp.Key+" "+kvp.Value);
foreach (CloudBlockBlob blobItem in blobs)
{
try
{
blobItem.DownloadToFile(downloadpath + "\\" + kvp.Key, FileMode.Create);
break;
}
catch (Exception e)
{
Console.WriteLine(e);
break;
}
}
Console.WriteLine("Downloaded: " + kvp.Key);
}
有没有办法通过名称获取 blob 并下载相应的文件?
【问题讨论】:
-
您的代码中的
kvp.Key是什么?我没有看到每个 blob 的变化。 -
抱歉,没说清楚。它是一个嵌套的 foreach,kvp 是一个键值对,包含文件名和最后修改日期。所以 kvp.Key 是我从每个 blob 中提取的文件名。调试时,每个循环的文件名都会改变。
-
感谢您的解释。因此,如果我理解正确,则会下载多个 zip 文件,并且当您提取每个 zip 文件时,它们都包含相同的文件。对吗?
-
是的,没错。我一直在调试代码,似乎 blobItem 没有移动到文件名。有没有办法告诉它我想用我拥有的 kvp.Key(文件名)下载哪个 blobItem?
-
你能编辑你的问题并分享完整的代码吗?显然,在将代码发布到此处之前,请从代码中删除存储凭据和其他敏感信息。
标签: c# azure azure-blob-storage