2012-06-16 153 views
0

我的代碼在這裏工作正常,以獲取內容的長度,並告訴我文件有多大,然後它在if語句上工作。由於某些原因,在if語句之後,如果MB小於5,它不會下載文件,它只會停止整個程序。這就像在HTTP請求之後,它就停止了。所以我不知道這是我的代碼錯誤,還是其他問題,如果這是一個愚蠢的問題,我的道歉。C#程序在HTTP請求後停止

  byte[] test; 
      int size; 
      long MB = 0; 
      HttpWebRequest req = (HttpWebRequest)WebRequest.Create(Path); 
      req.Method = "HEAD"; 
      HttpWebResponse resp = (HttpWebResponse)(req.GetResponse()); 
      long len = resp.ContentLength; 
      MB = len/1048576; 

      if (MB > 5) 
      { 
       Console.WriteLine("File to big!"); 
      } 
      else 
      { 
       var webClient = new WebClient(); 
       MemoryStream ms = new MemoryStream(); 
       byte[] imageBytes = webClient.DownloadData(Path); 
       test = imageBytes; 
       size = test.Length; 
      } 
+0

它可能是由於防火牆 –

+0

停止程序,因爲你會得到一個異常,這是在取消你的過程?嘗試用捕獲中的控制檯寫入線試圖捕獲代碼。 –

回答

1

只是猜測,但也許試圖打開另一個連接將有助於在調用resp.Close();

0

HttpWebResponse上調用Dispose()繼續使用WebClient

它應該工作。