Comment créer et remplir un fichier ZIP en utilisant ASP.NET?
Besoin dynamiquement paquet de certains fichiers dans un .zip pour créer un paquet SCORM, quelqu'un sait comment cela peut être fait à l'aide du code? Est-il possible de construire la structure de dossiers de façon dynamique à l'intérieur de l' .zip ainsi?
- Double Possible de à l'Aide du Système.IO.Emballage pour générer un fichier ZIP
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas à utiliser une bibliothèque externe plus. Système.IO.L'emballage a des classes qui peuvent être utilisées pour déposer le contenu dans un fichier zip. Ses pas simple, cependant. Voici un blog avec un exemple (son à la fin; creuser pour elle).
Le lien n'est pas stable, donc voici l'exemple Jon fournis dans le post.
DotNetZip est bien pour cette.
Exemple de travail
Vous pouvez écrire le zip directement à la Réponse.OutputStream. Le code ressemble à ceci:
DotNetZip est gratuit.
Vous pouvez prendre un coup d'oeil à SharpZipLib. Et voici un exemple.
DotNetZip est très facile à utiliser...
Créer des fichiers Zip dans ASP.Net
J'ai utilisé un composant libre de chilkat pour cela: http://www.chilkatsoft.com/zip-dotnet.asp. Fait à peu près tout ce que j'ai besoin mais je ne suis pas sûr au sujet de la construction de la structure de fichier de manière dynamique.
En mesure de le faire à l'aide de DotNetZip. vous pouvez le télécharger à partir de visual studio Nuget package manager ou directement via le DotnetZip.
ensuite, essayez de code ci-dessous,
Si vous voulez télécharger le fichier client,utilisez code ci-dessous.
La création de fichier ZIP "à la volée" qui serait fait à l'aide de notre Rebex ZIP composant.
L'exemple suivant décrit entièrement, y compris la création d'un sous-dossier:
Si vous êtes en utilisant .NET Framework 4.5 ou ultérieur, vous pouvez éviter les bibliothèques de tiers et de l'utilisation de la
System.IO.Compression.ZipArchive
classe native.Voici un petit exemple de code à l'aide d'un MemoryStream et un couple de tableaux d'octets représentant les deux fichiers:
Vous pouvez l'utiliser à l'intérieur d'un Contrôleur MVC retour d'un
ActionResult
: sinon, si vous avez besoin de personnes à mobilité créer l'archive zip, vous pouvez soit conserver leMemoryStream
de disque ou de les remplacer entièrement avec unFileStream
.Pour de plus amples informations à ce sujet, vous pouvez également lire ce post sur mon blog.