Как создать ZIP-файл, используя закодированную строку в C # - PullRequest
2 голосов
/ 04 мая 2011

Я новичок в C # и использую C # .Net 2.0 с Visual Studio 2005.

Как создать zip-файл из строки, используя GZipStream.(Я не хочу использовать какие-либо сторонние библиотеки и делаю это исключительно с использованием C #.)

К вашему сведению: сценарий таков.В папке уже есть zip-файл.Мне нужно закодировать этот поток zip-файлов в Base64 и снова сжать строку в кодировке Base 64.(Создание нового zip-файла из исходного zip-файла в кодировке Base64).

Ценю вашу помощь.

Спасибо,

Чатура

Ответы [ 2 ]

1 голос
/ 05 мая 2011

Спасибо 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);
        }
    }
1 голос
/ 04 мая 2011

Я предполагаю, что вы действительно имеете в виду использование формата архива .zip по сравнению с другим форматом, таким как .gz.Библиотеки сжатия .Net 2.0 не поддерживают архивирование в формате zip.GZipStream и такое сжатие в и из формата gzip.Здесь есть статья, которая показывает, как поддерживать zip в C # без внешних библиотек, но я не пробовал и не проверял это.Вы можете найти похожие статьи вокруг, но вам нужно копать, чтобы найти чистый C # .NET без внешних статей библиотекиhttp://www.codeproject.com/KB/recipes/ZipStorer.aspx

...