1

打开 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")

这是我收到的错误消息:

压缩(文件夹)无效或损坏

4

4 回答 4

8

GZipStream不创建.zip文件。它创建.gz文件。如果你需要创建.zip文件,你应该使用类似SharpZipLib的东西。

于 2009-08-25T12:37:06.527 回答
1

sample code for DotNetZip, an open source zip library.

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";
} 
于 2009-10-23T00:36:49.817 回答
1

但是,等一下,GZipStream 不会创建 zip 文件,它会创建 gzip 文件,据我所知,使用 GZipStream 压缩文件应该会有所帮助

于 2009-08-25T12:39:37.697 回答
1

为什么不使用SharpZipLib?它使这变得容易得多。

于 2009-08-25T13:38:36.733 回答