GZipStream почтовый файл поврежден или поврежден - PullRequest
1 голос
/ 25 августа 2009

У меня проблема при открытии 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 ]

8 голосов
/ 25 августа 2009

GZipStream не создает .zip файлов. Создает .gz файлы. Если вам нужно создать .zip файлы, вы должны использовать что-то вроде SharpZipLib .

1 голос
/ 23 октября 2009

пример кода для DotNetZip , zip-библиотека с открытым исходным кодом.

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";
} 
1 голос
/ 25 августа 2009

Почему бы не использовать SharpZipLib ? Это делает это намного проще.

1 голос
/ 25 августа 2009

но, подождите минуту, GZipStream не создает zip-файл, он создает gzip-файлы, как я знаю, Архивирование файлов с помощью GZipStream должно помочь

...