Pregunta

Recibo un error cuando uso SharpZipLib. Tengo el código que parece

FastZip compressor = new FastZip();
compressor.CreateZip(outputFileName, currentWorkingDirectory, true, "");

Lo que parece ser correcto. Sin embargo, recibo una ZipException que afirma que

size was 0, but I expected 54

No tengo idea de lo que eso significa. ¿Alguien tiene alguna idea o un enlace a un documento de API de algún tipo?

¿Fue útil?

Solución

Resulta que el problema era el siguiente. Estaba tratando de hacer un archivo .zip de todos los elementos en un directorio dado, y colocar ese archivo .zip en el directorio. Aparentemente, la forma en que funciona esta biblioteca, se crea el archivo .zip, y luego el directorio se lee archivo por archivo, escribiendo en el archivo .zip. El error ocurrió cuando intentó agregar el archivo .zip al archivo zip. Probablemente se le negó el acceso al archivo o algo en ese punto, lo que resultó en el error anterior. La solución más sencilla fue crear el archivo .ZIP en un directorio diferente.

Otros consejos

Aquí hay enlaces a su código fuente y un archivo de ayuda con API documentación.

Solucioné un problema similar al manejarlo dentro del controlador de eventos ProgressHandler y pasar el ZIPEntry como remitente. Dado que se trata de una condición de error, debemos detener el procesamiento adicional del archivo zip. E.ContinueRunning debe establecerse como falso

private void ProcessFileHandler(object sender, ProgressEventArgs e)
        {                    
                ZipEntry newEntry = sender as ZipEntry;
                if (newEntry != null)
                {
                    newEntry.Size = e.Processed;
                }
                e.ContinueRunning = keepRunning;
                return;
         }
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top