Compression zip

Description

Ce prog permet d'extraire les fichiers et/ou dossiers d'une archive zip
Il peut etre remodeler pour traiter en compression et decompression les format : ZIP, TAR, BZIP2 et GZIP
Je n'ai poster ici que la decompression, je vous laisse le plaisir de decouvrir la compression, qui n'est pas plus compliquer.

Etant donner que le framework n'est pas doter de fonction pour ce genre de traitements, une librairie externe, que vous pouvez telecharger a cet endroit, a été ajoutée comme référence à la solution

http://www.icsharpcode.net/OpenSource/SharpZipLib/default.asp

Source / Exemple :


...
void ExtractArchive(string zipFilename,string extractDir)
{
	ZipInputStream zis = null;
	FileStream fos = null;

	try
	{
		zis = new ZipInputStream(new FileStream(zipFilename,FileMode.Open,FileAccess.Read));
		ZipEntry ze;

		// on dezippe tout dans un rep du nom du zip, pas en bordel
		Directory.CreateDirectory(extractDir);

		while ((ze = zis.GetNextEntry()) != null)
		{
			if (ze.IsDirectory)
			{
				Directory.CreateDirectory(extractDir+"\\"+ze.Name);
			}
			else
			{
				if (!Directory.Exists(extractDir+"\\"+Path.GetDirectoryName(ze.Name)))
				{
					Directory.CreateDirectory(extractDir+"\\"+Path.GetDirectoryName(ze.Name));
				}

				fos = new FileStream(extractDir+"\\"+ze.Name,FileMode.Create,FileAccess.Write);
				int count;
				byte[] buffer= new byte[4096];

				while ((count = zis.Read(buffer,0,4096)) > 0)
				{
					fos.Write(buffer,0,count);
				}
			}
		}
	}
	finally
	{
		if (zis != null) zis.Close();
		if (fos != null) fos.Close();
	}
}
...

Conclusion :


Double Cliquez sur un fichier dans la ListView -> un message apparait vous demandant de confirmer l'extraction.
Si vous cliquez : OUI l'archive sera extraite dans un dossier du meme nom dans le meme repertoire.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.