2017-09-14 6 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 \ downloads \と呼ばれるファイルを作成しようとしました。

ストリームを破棄してください。 (using-keywordで完了)

+0

CloudBlockBlob blockBlob = container.GetBlockBlobReference( "Report/report1/YYY.pdf"); Inこのコード私はBLOBのパスを言及しています。これは正しい方法ですか?サブフォルダからBLOBをダウンロードしたいからです。 –

+0

はいこれは正しい方法であるはずです –

関連する問題