Compress and Decopress a Zip File in C#

Comprimere un file in formato ZIP


Linguaggio: C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

using System.IO;
using System.IO.Compression;

public class GZipTest
{
	public static int ReadAllBytesFromStream(Stream stream, byte[] buffer) 
	{
	    // Use this method is used to read all bytes from a stream.
	    int offset = 0;
	    int totalCount = 0;
		while (true) 
		{
    		int bytesRead = stream.Read(buffer, offset, 100); 
			if ( bytesRead == 0) 
			{
			    break; 
            }
	        offset += bytesRead;
            totalCount += bytesRead;
		}
        return totalCount;
	} 

	public static bool CompareData(byte[] buf1, int len1, byte[] buf2, int len2) 
	{
		// Use this method to compare data from two different buffers.
		if (len1 != len2) 
		{ 
		    Console.WriteLine("Number of bytes in two buffer are different {0}:{1}", len1, len2);
		    return false;
		}

		for ( int i= 0; i< len1; i++) 
		{
			if ( buf1[i] != buf2[i]) 
			{
			    Console.WriteLine("byte {0} is different {1}|{2}", i, buf1[i], buf2[i]);
			    return false;
			}
		}
	    Console.WriteLine("All bytes compare.");
	    return true; 
	}

	public static void GZipCompressDecompress(string filename)
	{
        byte[] bufferWrite;

        FileStream fsSource;
        FileStream fsDest;

        GZipStream gzCompressed;
        fsSource = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read);
        bufferWrite = new byte[fsSource.Length];
        fsSource.Read(bufferWrite, 0, bufferWrite.Length);
        fsDest = new FileStream(filename + ".zip", FileMode.OpenOrCreate, FileAccess.Write);

        gzCompressed = new GZipStream(fsDest, CompressionMode.Compress, true);
        gzCompressed.Write(bufferWrite, 0, bufferWrite.Length);

        fsSource.Close();
        gzCompressed.Close();
        fsDest.Close();
	}

}
	

1 Post

Compress and Decopress a Zip File in C#

Lascia un messaggio ...

“Utile! smile

Grazie”

Contattaci

Inviaci una E-mail per maggiori Informazioni:

La informiamo che i dati che fornirà al presente sito al momento della compilazione del "form contatti" (detto anche form mail) del sito stesso, saranno trattati nel rispetto delle disposizioni di cui al d.lgs. 196/2003, Codice in materia di protezione dei dati personali.

Acconsento