2017-09-14 63 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

是的這是應該是正確的方式 –