2017-03-04 120 views
0

我從網址下載XLSX文檔此C#代碼轉換C#的​​HttpWebRequest到VB.NET

var request = (HttpWebRequest)WebRequest.Create("url to xlsx file"); 
      request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate; 
      request.Headers[HttpRequestHeader.AcceptEncoding] = "gzip,deflate"; 
      using (var response = request.GetResponse()) 
      using (var stream = response.GetResponseStream()) 
      using (var output = File.Create("H:\\doc.xlsx")) 
      { 
       stream.CopyTo(output); 
      } 

我的目標編程語言是VB.net,所以我改變了C#到VB像下面

Dim request As HttpWebRequest = WebRequest.Create("url to xlsx file") 
     request.AutomaticDecompression = DecompressionMethods.GZip Or DecompressionMethods.Deflate 
     request.Headers(HttpRequestHeader.AcceptEncoding) = "gzip,deflate" 
     Dim response As WebResponse = request.GetResponse() 
     Dim stream As Stream = response.GetResponseStream() 
     Dim output As FileStream = File.Create("H:\doc.xlsx") 

     stream.CopyTo(output) 

由VB下載的xlsx文件已損壞且無法讀取,但C#運行良好 錯誤是什麼?

回答

2

嘗試包括using聲明:有可能整個內容沒有被刷新到輸出,所以你會得到損壞的消息。

Using response = request.GetResponse() 
    Using stream = response.GetResponseStream() 
     Using output = File.Create("H:\doc.xlsx") 
      stream.CopyTo(output) 
     End Using 
    End Using 
End Using 

using塊將確保處置的對象,你應該不管做一個已損壞的文件結束的問題,而且它還將呼籲Close()方法對標的以流和任何數據先前寫入緩衝區的文件將在文件流關閉前被複制到文件中,

+0

謝謝你的正確答案 – ramin

+0

我很高興我可以提供幫助。如果我已經回答了您的問題,請閱讀[this](http://stackoverflow.com/help/someone-answers) – CodingYoshi