Проблема в том, как вы получаете имя BLOB-объекта в следующей строке кода:
var blobFileName = blob.Uri.Segments.Last();
Учитывая, что путь равен tempdata/ExampleIotHub/02/2019/05/14/39
, имя BLOB-объекта ExampleIotHub/02/2019/05/14/39
(предполагается, что ваш контейнерзовут tempdata
), однако значение blobFileName, которое вы получаете, составляет всего 39 (см. примеры here
).Поскольку блоб с именем 39
отсутствует, вы получаете эту ошибку 404.
Я предлагаю вам попробовать сделать что-то вроде следующего:
foreach (var blob in list)
{
var localFileName = blob.Uri.Segments.Last();
CloudBlockBlob blockBlob = blob as CloudBlockBlob;
if (blockBlob != null)
{
string destinationPath = string.Format(@"D:\" + localFileName +".txt");
blockBlob.DownloadToFile(destinationPath, FileMode.OpenOrCreate);
}
}
Обратите внимание, что яне пытался запустить этот код, поэтому могут быть некоторые ошибки.