2014-11-20 49 views
0

我目前正在開發一個項目,我需要檢查從網站下載的文件的大小。我知道,默認情況下,分配的文件是4MB,我可以在Web配置文件中更改該文件,問題是如果文件大小大於4MB,系統應顯示錯誤。我的網頁是這樣如何在下載之前檢查內存中的文件大小

和後面的代碼看起來像這樣

private void btnExtract_Click(object sender, System.EventArgs e) 
{ 

DataView dataView = testReportData.WorktestItem.DefaultView; 

      MemoryStream ms = new MemoryStream(); 
      BinaryFormatter f = new BinaryFormatter(); 
      f.Serialize(ms, testReportData); 
      if (ms.Length < 4096) 
      { 
       this.ErrorLbl = Page.FindControl("ErrorLbl"); 
       ErrorLbl.Visible = true; 
       ErrorLbl.Text = "error"; 


      } 
} 

任何想法我怎麼能解決這個問題

+1

好的,所以你有這樣的代碼。什麼沒有關於它的工作?它與您的期望不符?是否有錯誤訊息? – mason 2014-11-20 16:39:46

+0

測試下載大於預期大小的文件時,錯誤未顯示,文件剛下載 – user2643961 2014-11-20 16:43:18

+2

不應該是'if(ms.Length> 4096){//您錯誤信息}'? – Izzy 2014-11-20 16:46:02

回答

1

你小於/大於號是倒退。如果文件大小小於4096字節,則只顯示錯誤。另外,你的問題說4MB。 ms.Length的單位是字節。所以4MB實際上是4,194,304字節。 4096字節只有4KB。這應該是代碼:

private void btnExtract_Click(object sender, EventArgs e) 
{ 
    DataView dataView = testReportData.WorktestItem.DefaultView; 
    MemoryStream ms = new MemoryStream(); 
    BinaryFormatter f = new BinaryFormatter(); 
    f.Serialize(ms, testReportData); 
    if (ms.Length > 4194304) 
    { 
     this.ErrorLbl = Page.FindControl("ErrorLbl"); 
     ErrorLbl.Visible = true; 
     ErrorLbl.Text = "error"; 
    } 
} 

您可能發生,如果您設置的第一行代碼斷點可能已經想通了這一點,然後通過行的代碼行階梯,比較它與你如何相信它執行應該執行。當它不同時,你可以檢查這些值,看看它爲什麼執行不同。這是基本的調試技巧,並且學習如何做到這一點非常重要,以便取得成功。如果Visual Studio是你的IDE,那麼Microsoft provides some documentation如何做到這一點。我也推薦觀看YouTube教程。

相關問題