C# Azure Blob存储下载所有文件

C# Azure Blob存储下载所有文件,c#,azure,download,blob,storage,C#,Azure,Download,Blob,Storage,我想从容器“$logs”下载所有文件,但抛出了StorageException CloudStorageAccount storageAccount = CloudStorageAccount.Parse("DefaultEndpointsProtocol=https;AccountName=" + accName + ";AccountKey=" + accKey); CloudBlobClient blobClient = storageAccount.CreateCloudBlobCli

我想从容器“$logs”下载所有文件,但抛出了
StorageException

CloudStorageAccount storageAccount = CloudStorageAccount.Parse("DefaultEndpointsProtocol=https;AccountName=" + accName + ";AccountKey=" + accKey);

CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();

CloudBlobContainer container = blobClient.GetContainerReference("$logs");

IEnumerable<IListBlobItem> ListBlobs = container.ListBlobs(string.Empty, true);

foreach (var item in ListBlobs)
{
    CloudBlockBlob blockBlob = container.GetBlockBlobReference(item.ToString());
    string path= (@"C:\Users\Ay\Downloads\AzureLogs");
    blockBlob.DownloadToFile(path, FileMode.Open);
}
CloudStorageAccount-storageAccount=CloudStorageAccount.Parse(“DefaultEndpointsProtocol=https;AccountName=“+accName+”;AccountKey=“+accKey”);
CloudBlobClient blobClient=storageAccount.CreateCloudBlobClient();
CloudBlobContainer container=blobClient.GetContainerReference(“$logs”);
IEnumerable ListBlobs=container.ListBlobs(string.Empty,true);
foreach(ListBlobs中的var项)
{
CloudBlockBlob blockBlob=container.getblockblobbreference(item.ToString());
字符串路径=(@“C:\Users\Ay\Downloads\AzureLogs”);
blockBlob.DownloadToFile(路径,FileMode.Open);
}

问题是什么?

问题是
item.ToString()
将返回“Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob”,因此不存在导致404错误的此类Blob

把那行改成

CloudBlockBlob blockBlob = container.GetBlockBlobReference(((CloudBlockBlob)item).Name);
编辑: 本地写入文件的代码也不正确。 试试这个


您得到的异常是什么?“storageexception远程服务器返回一个错误(404)not found”非常感谢。。但是现在它不下载文件了!?本地保存的代码也存在问题。我已经更新了我的答案。这一次出现了这个异常,但目录已经存在“directorynotfoundexception找不到路径C:\Users\Ay\Downloads\AzureLogs\blob\2015\06\03\1200\000000.log的一部分”@AyhanGzr我和你面临同样的错误,你能解决吗?
foreach (var item in ListBlobs)
{
    string name = ((CloudBlockBlob) item).Name;
    CloudBlockBlob blockBlob = container.GetBlockBlobReference(name);
    string path = (@"C:\Users\Ay\Downloads\AzureLogs\" + name);
    blockBlob.DownloadToFile(path, FileMode.OpenOrCreate);
}