打开zip文件时遇到问题。我正在使用此代码压缩文件:
public static string Zip_File(string soruce , string target)
{
try
{
byte[] bufferWrite;
using (FileStream fsSource = new FileStream(soruce, FileMode.Open, FileAccess.Read, FileShare.Read))
{
bufferWrite = new byte[fsSource.Length];
fsSource.Read(bufferWrite, 0, bufferWrite.Length);
using (FileStream fsDest = new FileStream(target, FileMode.OpenOrCreate, FileAccess.Write))
{
using (GZipStream gzCompressed = new GZipStream(fsDest, CompressionMode.Compress, true))
{
gzCompressed.Write(bufferWrite, 0, bufferWrite.Length);
bufferWrite = null;
fsSource.Close();
gzCompressed.Close();
fsDest.Close();
}
}
}
return "success";
}
catch (Exception ex)
{
return ex.Message;
}
}
当我调用此函数时,我收到“成功”消息,但我无法打开zip文件。这是我的函数调用代码:
ZipFiles.Zip_File(@"C:\Documents and Settings\ccspl\Desktop\IntegrityDVR.mdb", @"C:\Documents and Settings\ccspl\Desktop\a.zip")
这是我收到的错误消息:
压缩(文件夹)无效或已损坏
答案 0 :(得分:8)
GZipStream
不会创建.zip
个文件。它会创建.gz
个文件。如果您需要创建.zip
文件,则应使用类似SharpZipLib的内容。
答案 1 :(得分:1)
但是,等一下,GZipStream不会创建zip文件,它会创建gzip文件,据我所知,Zipping files using GZipStream应该有帮助
答案 2 :(得分:1)
为什么不使用SharpZipLib?它使这更容易。
答案 3 :(得分:1)
开源zip库DotNetZip的示例代码。
public static string ZipFile(String source, String target)
{
try
{
using (ZipFile zip = new ZipFile()
{
zip.AddFile(source);
zip.Save(target);
}
return "success";
}
catch {}
return "failure";
}