Décompressez les fichiers de programme dans .net

Je suis en train d'en programmant décompresser un fichier zippé.

J'ai essayé d'utiliser le System.IO.Compression.GZipStream classe .NET, mais quand mon application s'exécute (en fait une unité de test), j'ai cette exception:

Système.IO.InvalidDataException: Le nombre magique dans GZip-tête n'est pas correcte. Assurez-vous que vous êtes de passage dans un GZip ruisseau..

Je me rends compte maintenant qu'un .zip fichier n'est pas le même comme un .gz fichier, et que GZip n'est pas le même que Zip.

Cependant, depuis que je suis en mesure d'extraire le fichier manuellement en double-cliquant sur le fichier compressé, puis en cliquant sur la fonction "Extraire tous les fichiers"bouton, je pense qu'il devrait y avoir un moyen de le faire dans le code.

Donc j'ai essayé d'utiliser Process.Start() avec le chemin vers le fichier compressé à l'entrée. Cela provoque mon application pour ouvrir une Fenêtre affichant le contenu dans le fichier zippé. C'est tout beau, mais l'application sera installée sur un serveur avec personne autour de cliquer sur "Extraire tous les fichiers"bouton.

Alors, comment puis-je obtenir mon application pour extraire les fichiers dans les fichiers zippés?

Ou est-il un autre moyen de le faire? Je préfère le faire dans le code, sans avoir à télécharger de bibliothèques tierces ou d'applications; le département de la sécurité n'est pas trop de fantaisie à ce sujet...

  • Votre service de sécurité est plus heureux avec vous d'écrire votre propre code pour quelque chose que l'utilisation d'une bibliothèque qui a été débuggé et regarda par sans doute beaucoup d'yeux? Vous pouvez utiliser une bibliothèque ET "faire dans le code" (obtenir le code source et le compiler vous-même), mais je vois de réinventer la roue, comme un problème plus important que les problèmes de sécurité apporté par l'aide d'une essayé et vrai de la bibliothèque.
  • Lorsque la direction a une idée dans leur tête...
  • Il y a moins de risque pour le département de la sécurité si vous obtenez un produit tiers. Il suffit de télécharger dotnetzip et de le renommer "[insérer le nom de la société].ziplibrary.dll"
InformationsquelleAutor Petteri | 2009-05-07