Comment puis-je compresser un répertoire avec .NET?
J'ai un répertoire qui contient plusieurs fichiers. Je veux compresser ce dossier à un zip ou tar.gz fichier. Comment puis-je faire son travail en C#?
source d'informationauteur masoud ramezani
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser Bibliothèque De DotNetZip. Il est très riche et de nombreuses fonctionnalités utiles.
EDIT:
Regarder dans l'aide de SharpZipLib. Il supporte à la fois GZip et la compression ZIP en C#.
Il y a un excellent tutoriel ici décrivant ce que vous devez faire pour compresser un répertoire avec SharpZipLib.
utilisation 7zip à partir de la ligne de commande en C# --> LZMA SDK prend en charge C#, et il y a codesamples dans le package
- je utiliser le Système.IO.L'emballage de Noms qui a été introduit avec .NET Framework 3.5. J'ai décidé de l'utiliser car il est basé sur .NET Framework classes de Base et pas de 3ème partie du code est nécessaire, ce qui fait sauter la taille du code..
voici un autre post sur Stackoverflow au sujet de cette Question
Et voici l'espace de Noms et ZipPackage déclaration /explication @MSDN
espère que ça aide
Christian
À mon emploi précédent, nous avons utilisé #ziplib.
C'est un bonne discussion qui discute de la possibilité de le faire sans toutes les bibliothèques tierces. Je pense que vous devriez avoir un oeil sur elle.
Ici est un grand dépôt des exemples de codes qui peuvent vous aider dans votre travail. Bonne Chance..
GZip fait partie de Microsoft Framework 2.0 à partir.
Son appelé GZipStream sous Système.IO.La Compression de l'espace de noms.
Pour compresser un répertoire avec cette classe, vous devez créer une classe sérialisable (par ex. du Répertoire) qui contient une collection de Fichiers.
Les Fichiers de la classe contenir de nom de fichier et le fichier de flux d'octets lus à partir du fichier.
Une fois que vous faites appliquer GZip sur le Répertoire, il va lire les Fichiers un par un et de les écrire dans GZipStream.
Vérifier ce lien: http://www.vwd-cms.com/forum/forums.aspx?topic=18
Un autre pré-3.5 option est d'utiliser les utilitaires zip de J#. Après tout, .Net ne fait pas attention à ce que la langue, le code a été écrit à l'origine en ;-).
D'Articles sur la façon de le faire:
La question est assez vieux et sont donc les réponses.
Meilleure réponse depuis la fin de l'année 2012 est: Utiliser .NET 4.5 et le contenu de l'
System.IO.Compression
etSystem.IO.Compression.ZipArchive
de l'espace de noms des classes.L'un des nombreux exemple les liens que vous recevez si vous effectuez une recherche sur internet:
http://www.codeproject.com/Articles/381661/Creating-Zip-Files-Easily-in-NET
Depuis 2014/2015 ff.:
Avec Roslyn l'ensemble de la bibliothèque a été publié en Open Source, donc AFAI comprendre, libre à vous d'en extraire le code de 4,5 classes (comme il devrait l'être pas vraiment spécifique au système) et l'utiliser comme une bibliothèque de plus tôt .NET cadres. Peut-être que ce serait donner une licence d'avantages sur l'utilisation des autres classes, mais ce doit être analysé par vous.