2016-10-05 7 views
0

私はDropboxにあるPDFファイルをダウンロードしようとしています。ローカルコンピュータに保存する必要があります。フォルダはC:\Users\User\Desktopなどです。 これは、私が取り組んできたコードです:DropboxからファイルをダウンロードするC#

public void DownloadPdf() 
     { 

      DropboxClient client2 = new DropboxClient("cU5M-asdgfsdfsdfds3434435dfgfgvXoAMCFyOXH"); 
      string folder = "MyFolder"; 
      string file = "Test PDF.pdf"; 
      var response = client2.Files.DownloadAsync("/" + folder + "/" + file);   
     } 

私は私のローカルドライブにそのファイルを保存することができますどのように?次に何をする必要がありますか?それはどんなエラーもスローされませんが、私はそのパスがDropboxのpdfドキュメントに入っていることさえ確信していません。 ASP.netコア内にDropbox.Apiを使用しています。

答えて

2

コンテンツをストリームに変換し、ローカルパスにダウンロードするだけです。あなたはそうすることができます

public void DownloadPdf(string localFilePath) 
{ 
    DropboxClient client2 = new DropboxClient("cU5M-asdgfsdfsdfds3434435dfgfgvXoAMCFyOXH"); 
    string folder = "MyFolder"; 
    string file = "Test PDF.pdf"; 
    using (var response = await client.Files.DownloadAsync("/" + folder + "/" + file)) 
    { 
     using (var fileStream = File.Create(localFilePath)) 
     { 
      (await response.GetContentAsStreamAsync()).CopyTo(fileStream); 
     } 
    } 
} 
+0

'.Result'は、もう1つの待機を使用します。 '.Result'を使うと、プログラム内でデッドロックが発生する可能性があります。両方の待ち時間で '.ConfigureAwait(false)'を使うことは害ではないでしょう。 –

+1

また、ストリームを廃棄していません。 –

+0

@ScottChamberlainこのスニペットでコンパイル時にエラーが発生しました: '(var fileStream = File.Created(@" C:\ Users \ User \ Desktop \ Notes "))'エラー: 'CS0119 \t 'ControllerBase .File(byte []、string) 'は、指定されたコンテキストでは有効ではないメソッドです.'私は以前この方法で使用しようとしましたが、エラーに応じて、そのエラーによってクラッシュしました。ファイルはメソッドを参照していますか? 'File'の後にポイントを置くと' Create'は表示されません。それは 'Created'を示していますか? – AlexGH

関連する問題