2

私はC#を初めて使用し、Visual Studio 2005でC#.Net2.0を使用しています。

GZipStreamを使用して文字列からzipファイルを作成するにはどうすればよいですか。(サードパーティのライブラリを使用したくないので、純粋にC#を使用してこれを実行します。)

参考:シナリオはこれです。フォルダにはすでにzipファイルがあります。このzipファイルストリームをBase64でエンコードしてから、Base64でエンコードされた文字列を再度zipする必要があります。(Base64でエンコードされた元のzipファイルから新しいzipファイルを作成します)。

あなたの助けに感謝。

ありがとう、

チャトゥラ

4

2 に答える 2

3

返信してくれたBuellerに感謝します。しかし、外部ライブラリを使用せずにそれを行うことができました。これがコードスニペットです。これは、すべてのtry/catchなどを含む最終的なコードではありません。他の人にも役立つ可能性があります。

        private static void CreateZipFromText(string text)
    {            
        byte[] byteArray = ASCIIEncoding.ASCII.GetBytes(text);
        string encodedText = Convert.ToBase64String(byteArray);

        FileStream destFile = File.Create("C:\\temp\\testCreated.zip");

        byte[] buffer = Encoding.UTF8.GetBytes(encodedText);
        MemoryStream memoryStream = new MemoryStream();

        using (System.IO.Compression.GZipStream gZipStream = new System.IO.Compression.GZipStream(destFile, System.IO.Compression.CompressionMode.Compress, true))
        {
            gZipStream.Write(buffer, 0, buffer.Length);
        }
    }
于 2011-05-05T05:33:35.197 に答える
1

実際には、.zipアーカイブ形式と.gzなどの別の形式を使用することを意味していると思います。.Net 2.0圧縮ライブラリは、そのままではzip形式のアーカイブをサポートしていません。GZipStreamなどはgzip形式との間で圧縮されます。外部ライブラリなしでC#でzipをサポートする方法を示す記事がここにありますが、私はそれを試したりテストしたりしていません。同様の記事を見つけることができますが、外部ライブラリの記事がない純粋なC#.NETを見つけるために掘り下げる必要があります。 http://www.codeproject.com/KB/recipes/ZipStorer.aspx

于 2011-05-04T14:14:08.370 に答える