Estoy en un aprieto. Necesito descargar un archivo zip de la ubicación de la red y luego descomprimirlo en la máquina local y usar los archivos. La única restricción es que no puedo usar dll de terceros.Cómo extraer un archivo zip usando dotnet framework 4.0 sin usar dlls de terceros
Respuesta
En .NET framework 4.5 ahora existe el método System.IO.Compression.ZipFile.ExtractToDirectory(String, String)
.
System.IO.Compression;) – tanathos
OOps, escritura rápida ... Lo corregiré :) –
Me gusta cómo se seleccionó específicamente la pregunta 4.0 y se seleccionó una respuesta de 4.5 – DontFretBrett
Una rápida búsqueda en Google lo hizo subir. GZipStream Class MSDN Reference
"... sin embargo, esta clase no proporciona intrínsecamente funcionalidad para agregar archivos o extraer archivos de archivos .zip ..." –
No hay una "buena" forma de hacerlo. Obviamente, puede implementar el algoritmo ZIP utilizando information públicamente disponible en la estructura de archivos ZIP y clases como DeflateStream (aunque incluso esto puede no funcionar si no se comprime utilizando el algoritmo DEFLATE). Hay alguna información sobre posibles alternativas en this blog post, pero la versión corta es que tendrá que usar una biblioteca de terceros o volver a escribir uno usted mismo.
Si esta es una situación en la que podría liberar el código fuente de manera GPL, podría copiar y pegar el código de un proyecto como SharpZipLib en el suyo, evitando así el requisito de usar el DLL . Aparte de eso, ¿por qué no puedes usar DLL de terceros?
GZipStream es el más comúnmente utilizado para la compresión de datos WCF. No uses eso aquí.
Usted puede tratar de esta biblioteca postal para comprimir en archivos:
Esto no aparece ser una pregunta de WCF, y GZipStream no va a ayudar con los archivos ZIP, que generalmente usan el algoritmo DEFLATE. –
No entendiste mi publicación. Sugerí otro enfoque ... – Turowicz
SharpZipLib fallará con los archivos comprimidos por un sistema host de Unix.Por ejemplo, cuando se hace en una máquina MacOSX, usando el compresor zip interno – Highmastdon
No estoy seguro de si todavía está disponible en VS2010, pero en versiones anteriores J # fue incluida en VS y J # incluye el java.util.zip
clase en el vjslib.dll, y ya que es parte de VS, no es una DLL de terceros, por lo que es posible que pueda hacerlo de esa manera.
Aquí hay un artículo CodeProject que muestra cómo hacer esto: Zip and Unzip from a C# program using J# runtime
Interesante, no sabía que estaba allí ... –
Tenga en cuenta que J # ya no se incluye con .NET Framework, aunque todavía se envía con VS2005- 2015. Esta podría ser una solución válida para algunas personas. https://social.msdn.microsoft.com/Forums/office/en-US/627b5ca3-fac7-461f-9e3a-824fd2a5eb32/problem-with-vjslibdll?forum=netfxbcl – ErikusMaximus
El marco .NET en sí no (actualmente) tienen soporte oficial para archivos ZIP. Hay un par de bibliotecas libres de terceros de alta calidad disponibles, y el tiempo de ejecución de J # lo admite, como han notado otros.
Recomiendo la solución de terceros, pero si absolutamente no puedes hacer eso, entonces hay otro truco: ZipPackage, que es parte de WPF. Es tipo de compatible con archivos ZIP (aumentado con metadatos adicionales), y funciona lo suficientemente bien para leer más archivos ZIP.
- 1. ¿Cómo extraer archivos de un archivo zip usando Lua?
- 2. Cómo extraer un archivo ZIP en C#
- 3. ¿Cómo puedo extraer un solo archivo de un archivo ZIP utilizando Perl's Archive :: Zip?
- 4. Objetivo C - Acceso a archivos en zip sin extraer zip
- 5. creando un archivo zip en php sin usar ziparchive
- 6. Cómo usar zip4j para extraer un archivo zip con protección de contraseña
- 7. Descargar y extraer archivo Zip en Android
- 8. Cómo leer un archivo .RTF usando .NET 4.0
- 9. Usando System.IO.Packaging para generar un archivo ZIP
- 10. Escribir en un archivo usando CopyHere sin usar WScript.Sleep
- 11. Forma simple de descomprimir un archivo .zip usando zlib
- 12. Comparación de cadenas en dotnet framework 4
- 13. En PHP, ¿es posible inspeccionar el contenido de un archivo Zip sin extraer primero su contenido?
- 14. Creando archivo Zip usando SharpZipLib
- 15. Usando System.ComponentModel.DataAnnotations con Entity Framework 4.0
- 16. Imagen corrupta al extraer de zip
- 17. ¿Puedo usar .NET Framework 4.0 con VS2008?
- 18. ¿Cómo encriptar un archivo .zip?
- 19. Cómo descomprimir un archivo zip C#
- 20. Mantener los permisos de archivo al extraer de un archivo zip utilizando JDK 5 api
- 21. Cómo crear un archivo Zip sin comprimir en Java
- 22. ¿descargar archivo zip usando java?
- 23. Windows API para extraer archivos zip?
- 24. Lea un archivo zip dentro del archivo zip
- 25. Crear archivo zip o tar.gz sin ejecutivo
- 26. Rubymotion: Descargar y extraer archivo Zip en iOS
- 27. Android: Cómo descomprimir un archivo zip encriptado
- 28. Desempaquetar/extraer archivo zip con PHP sin depender de ninguna extensión
- 29. ¿Cómo puedo crear un archivo zip usando Objective C?
- 30. ¿Cómo descargo un archivo zip en python usando urllib2?
Esto parece un duplicado de esta pregunta: http://stackoverflow.com/questions/836736/unzip-files-programmatically-in-net. Es posible que desee comprobar si hay más respuestas. – Rich
¿Por qué no puedes usar una biblioteca de terceros? Es un requisito estúpido ... probablemente hecho por alguien en la administración;) –
En realidad, es un requisito muy importante ya que la falta de compatibilidad con .NET Framework para las cremalleras agrega la complejidad de agregar otra dll (y el problema de seguridad es cierto ya que si mira la diligencia debida de Microsoft con su código, es mucho mejor que la mayoría) –