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

しかし、ちょっと待ってください。GZipStream は zip ファイルを作成しません。私が知っているように gzip ファイルを作成します。GZipStream を使用してファイルを圧縮すると役立つはずです。

于 2009-08-25T12:39:37.697 に答える
1

SharpZipLibを使用しないのはなぜですか? これにより、これが非常に簡単になります。

于 2009-08-25T13:38:36.733 に答える