2016-03-25 3 views
0

это мой код для скачивания файла. , но я не уверен, как записать файл на диск.Как написать файл HttpStreamContent в файл?

private async Task DownloadFile() 
    { 
     HttpStreamContent streamContent = new HttpStreamContent(new SlowInputStream(streamLength)); 
     IProgress<HttpProgress> progress = new Progress<HttpProgress>(ShowProgress); 
     response = await httpClient.PostAsync(new Uri(downloadUrl), streamContent).AsTask(cts.Token, progress); 
    } 

им не уверен, что писать здесь и куда звонить WriteToFile():

private async Task WriteToFile() 
    { 
     var myFile = await KnownFolders.MusicLibrary.CreateFileAsync(filename.Replace("---", " - ")+".mp3", CreationCollisionOption.GenerateUniqueName); 
///stuck here 
    } 
+0

Вы должны написать ответ на файл? Просьба уточнить – Archana

+0

Что содержит ответ? Содержимое файла? – Archana

ответ

2

Я получил это работает так:

private async Task DownloadFile() 
    { 

     IProgress<HttpProgress> progress = new Progress<HttpProgress>(ShowProgress); 
     try 
     { 

      response = await httpClient.GetAsync(new Uri(downloadUrl), HttpCompletionOption.ResponseContentRead).AsTask(cts.Token, progress); 
      DownloadMessageText.Text = "Download complete. Writing to disk..."; 
      await WriteToFile(); 
      DownloadMessageText.Text = "File saved in music library."; 
     } 
     catch { } 


    } 

и записи на диск:

private async Task WriteToFile() 
    { 
     var myFile = await KnownFolders.MusicLibrary.CreateFileAsync(filename.Replace("---", " - ") + ".mp3", CreationCollisionOption.GenerateUniqueName); 
     var fs = await myFile.OpenAsync(FileAccessMode.ReadWrite); 
     IBuffer buffer = await response.Content.ReadAsBufferAsync(); 
     await fs.WriteAsync(buffer); 
    } 
Смежные вопросы