2016-10-05 2 views
0

Я пытаюсь загрузить pdf-файл, который у меня есть в Dropbox, мне нужно сохранить его на моем локальном компьютере, в любой папке он может быть, например, 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);   
     } 

Как я могу сохранить файл в мой локальный диск? Что мне нужно сделать дальше? Это не вызывает никаких ошибок, но я даже не уверен, что путь попадает в документ pdf в Dropbox. Я использую Dropbox.Api в ASP.net Core.

ответ

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', используйте другой ожидание. Использование '.Result', вероятно, приведет к тупиковой ситуации в программе. Использование '.ConfigureAwait (false)' на обоих ожиданиях тоже не повредит. –

+1

Кроме того, вы не располагаете потоком. –

+0

@ScottChamberlain Я получаю ошибку компиляции в этом фрагменте: 'using (var fileStream = File.Created (@" C: \ Users \ User \ Desktop \ Notes "))' Ошибка: 'CS0119 \t 'ControllerBase .File (byte [], string) '- метод, который недопустим в данном контексте'. Я пытался использовать его на этом пути раньше, но я был разбит этой ошибкой, согласно ошибке Файл ссылается на метод? и как только я ставлю точку после 'File', она не показывает' Create', она показывает 'Created', любую идею? – AlexGH

Смежные вопросы