Comment décompresser tous les fichiers .Zip à partir du dossier en utilisant C # 4.0 et sans utiliser de DLL OpenSource?
J'ai un dossier contenant .Les fichiers ZIP. Maintenant, je veux Extraire les Fichiers ZIP dans des dossiers spécifiques à l'aide de C#, mais sans l'aide extérieure de l'assemblée ou de la .Net Framework 4.5.
J'ai cherché, mais pas trouvé de solution pour le déballage *.zip fichiers à l'aide de Framework 4.0 ou ci-dessous.
J'ai essayé GZipStream, mais il ne prend en charge .gz et pas .les fichiers zip.
source d'informationauteur SHEKHAR SHETE | 2013-04-17
Vous devez vous connecter pour publier un commentaire.
Ici est un exemple de msdn.
System.IO.Compression.ZipFile
est fait pour que:Edit: désolé, j'en ai oublié que vous êtes intérêts .NET 4.0 et ci-dessous.
Nécessaire .NET framework 4.5 et supérieur.
J'ai eu la même question et a trouvé un grand et très simple article qui permet de résoudre le problème.
http://www.fluxbytes.com/csharp/unzipping-files-using-shell32-in-c/
vous aurez besoin de faire référence à la
COM bibliothèque appelée Microsoft Shell Controls and Automation (Interop.Shell32.dll)
Le code (prises intact de l'article, juste pour que vous voyez comment il est simple):
recommandons fortement la lecture de l'article - il apporte une explenation pour les drapeaux 4/16
EDIT: après plusieurs années que mon application, qui utilise cette, a été en cours d'exécution, j'ai reçu des plaintes de deux utilisateurs qui tout d'un coup, l'application a cessé de fonctionner.
il semble que la CopyHere fonction crée temp fichiers/dossiers et ces n'ont jamais été supprimés qui a causé des problèmes.
L'emplacement de ces fichiers peuvent être trouvés dans le Système.IO.Chemin d'accès.GetTempPath().
ZipPackage pourrait être un endroit pour commencer. C'est à l'intérieur Système.IO.L'emballage et disponible en .NET 4.0
Pas n'importe où près de la simplicité de la .NET 4.5 méthode mentionnée ci-dessus, mais on dirait qu'il peut faire ce que vous voulez.
.NET 3.5 a un DeflateStream pour cela. Vous devez créer des structures pour les informations sur les répertoires et tels, mais de PKWare a publié cette information. J'ai écrit un utilitaire de décompression et il n'est pas particulièrement onéreux lors de la création de leurs structures.
J'ai eu le même problème et l'a résolu en appelant 7-zip fichier exécutable via cmd shell à partir de code C#, comme suit,
Et où
Launch_in_Shell(...)
est défini comme,Inconvénients: Vous devez avoir 7zip installé dans votre machine et j'ai seulement essayé avec ".7z fichiers". Espérons que cette aide.
.net 4.0 et GZip, Deflate ne peut pas gérer les fichiers Zip, mais vous pouvez utiliser la fonction shell pour la Décompression des fichiers.
Lors de l'extraction de la Fonction est appelée, vous pouvez enregistrer le retour de l'folderItems par