我使用下面的代码来下载文件。但它下载文件但没有显示内容,或者它没有打开文件。文件路径不同。我的项目在不同的路径,我从不同的路径采取文件。这些文件不存储在项目路径中。文件路径,大小,名称存储在数据库中。
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....");
答案 0 :(得分:0)
我只是快速浏览一下你的代码,但如果我理解正确,那么没有任何内容写入文件,这是正确的吗?您可以尝试在结尾附近添加以下内容:
S.Flush()
当你关闭流时,这可能会自动发生,但是我已经看到了无论出于什么原因它都没有的情况。刷新将确保缓冲区中的任何数据在关闭之前实际写入文件。