2012-02-02 125 views
5

Estoy buscando un ejemplo que me ayude a comprender cómo puedo comprimir archivos en C# en partes, es decir, si tengo un archivo zip de 20MB, quiero dividir el archivo en 4 partes de 5MB cada uno.Comprimir archivos en partes en C#

He pasado por Stack overflow question y luego incluso miré en la documentación de la biblioteca DotNetZip pero no pude encontrar ningún ejemplo.

¿Alguien podría sugerir? gracias,

Lo que estoy buscando que cuando tengo esos 4 archivos, puedo extraerlos a los archivos originales. Entonces, cada parte individual puede no ser un archivo zip correcto, pero las 4 partes deben extraerse correctamente

+4

¿Qué vas a hacer con los otros 10MB de zip? –

+0

¿Necesita que cada uno de los fragmentos sea un archivo zip válido o simplemente desea reducir el tamaño de archivo individual antes de volver a combinar los archivos? –

+0

zip correcto o solo compresión? –

Respuesta

1

Puede intentar ICSharpCode para comprimir los archivos. Una vez que el archivo esté comprimido, puede usar FileStream para guardar el archivo en trozos pequeños. Lo había hecho en uno de mis proyectos. Si necesita ayuda, hágamelo saber.

+0

así que si puedo dividir el archivo zip leyéndolo a través de una secuencia binaria, entonces puedo usar cualquier biblioteca de archivos zip ... ¿verdad? en ese momento, se dividiría en partes usando filestream –

+0

. Será como '10Mb.txt' =>' 10Mb.zip' (usando la biblioteca de archivos Zip) => Dividir el archivo en '5MbPart1.zip' y' 5MbPart2.zip '(Usando código personalizado, que usa' FileStream'). Haz lo inverso para obtener el archivo original. –

2

¿Quiere decir dividir el archivo ZIP en varios archivos después de que se haya comprimido, lo que significa que tiene que volver a combinar ambas partes para tener un ¿CREMALLERA?

Puede lograr esto con 7Zip. Aquí hay instrucciones para hacerlo con su UI. También proporcionan an API para automatizar la tarea.

http://www.linglom.com/2008/10/12/how-to-split-a-large-file-using-7-zip/

También puedes, simplemente leer el archivo como datos binarios, a continuación, escribir en archivos independientes usando su propia convención, por ejemplo, my.zip.part1of3, my.zip.part2of3, my.zip.part3of3, etc. Cuando esté listo, recombine las partes y descomprímalas. Si hace esto, la persona que vuelva a ensamblar las piezas necesitará una utilidad personalizada de usted.

Cuestiones relacionadas