2017-09-14 64 views
0

我是新来的blob存储。我正试图下载blob文件。但我面临例外使用c下载blob文件时找不到本地文件路径#

访问路径'C:\ Users \ xxx \ Downloads'被拒绝。

请分享您的看法。在此先感谢

CloudStorageAccount storageAccount = CloudStorageAccount.Parse("connectionstring"); 
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient(); 
CloudBlobContainer container = blobClient.GetContainerReference("_report"); 
CloudBlockBlob blockBlob = container.GetBlockBlobReference("Report/report1/YYY.pdf");    

// Save blob contents to a file.  
blockBlob.DownloadToStream(System.IO.File.OpenWrite(@"C:\Users\xxx\Downloads")); 
+1

我的观点是,无论此代码运行的上下文没有该路径的权限。不幸的是,你没有提供关于这个程序是什么以及它如何运行的信息。 – Equalsk

+1

你想要“OpenWrite”的文件名是什么?你在哪里指定这个名字?它看起来像你可能试图打开一个目录作为文件流.. – Aaron

+0

该流试图打开“@”C:\ Users \ xxx \ Downloads“作为一个文件,并在该位置需要额外的访问权限。要将@“C:\ Users \ xxx \ Downloads”更改为@“C:\ Users \ xxx \ Downloads \ somefile.txt” –

回答

0

改变最后一行代码以下:

 using (Stream str = System.IO.File.OpenWrite(@"C:\Users\xxx\Downloads\somefile.txt")) 
     { 
      blockBlob.DownloadToStream(str); 
     } 

的路径指向现在在下载目录中的文件。以前的值试图在C:\ Users \ xxx \

中创建一个名为下载的文件并请处理您的流。 (使用关键字完成)

+0

CloudBlockBlob blockBlob = container.GetBlockBlobReference(“Report/report1/YYY.pdf”); In这段代码我提到blob路径。这是正确的方式吗?因为我想从子文件夹下载一个blob。 –

+0

是的这是应该是正确的方式 –