2012-07-04 41 views
1

我正在使用波紋管代碼下載文件,但下載文件時未顯示內容,或者未打開文件。文件路徑是不同的。我的項目是不同的路徑,我正在從不同的路徑獲取文件。這些文件不存儲在項目路徑中。文件路徑,大小,名稱都存儲在數據庫中。已下載的文件內容沒有顯示

Crc32 crc = new Crc32(); 
ZipOutputStream s = new ZipOutputStream(File.Create(
     @"C:\Documents and Settings\admin\My Documents\Downloads\Evidence.zip")); 

s.SetLevel(0); // 0 - store only to 9 - means best compression 

FileStream fs = File.OpenRead(@"c:\boot.ini"); 
byte[] buffer = new byte[fs.Length]; 

fs.Read(buffer, 0, buffer.Length); 

if (ds.Tables[0].Rows.Count > 0) 
{ 
    for (int i = 0; i < ds.Tables[0].Rows.Count; i++) 
    { 
    string fileNamePath = Convert.ToString(ds.Tables[0].Rows[i]["EvidencePath"]); 
    string fileNmae = Convert.ToString(ds.Tables[0].Rows[i]["EvidenceName"]); 

    ZipEntry entry = new ZipEntry(ZipEntry.CleanName(@fileNmae)); 
    entry.DateTime = DateTime.Now; 
    entry.Comment = "test file"; 
    entry.ZipFileIndex = i + 1; 
    entry.Size = fs.Length; 

    //fs.Close(); 

    crc.Reset(); 
    crc.Update(buffer); 
    entry.Crc = crc.Value; 

    s.PutNextEntry(entry); 
    s.Write(buffer, 0, buffer.Length); 

    //Response.WriteFile(""+fileNamePath); 
    } 
    s.Finish(); 
    s.Close(); 
    fs.Close(); 
} 

ShowMessageBox("Downloaded...."); 
+1

請問您是否確認代碼是否與問題實際相關?我對代碼進行了重新格式化,以找到可以在某處寫結果的文件......但是除了創建一個zip文件之外,我仍然沒有看到任何東西......並且在標記爲ASP.Net的問題上沒有引起大量疑問的奇怪ShowMessageBox調用。 .. .. –

+0

ShowMessageBox是我的代碼中的函數 – vaishali

回答

0

我只花了快速瀏覽一下你的代碼,但如果我理解正確的話,沒有什麼是被寫入文件,是正確的?您可以嘗試添加以下接近尾聲:

S.Flush() 

當您關閉流這也許應該自動發生,但我已經看到它不因任何原因的情況下。刷新將確保緩衝區中的任何數據在關閉之前實際寫入文件。