Errore dispari in SharpZipLib & # 8212; La dimensione era x, ma mi aspettavo y
-
06-07-2019 - |
Domanda
Ricevo un errore quando uso SharpZipLib. Ho un codice simile a
FastZip compressor = new FastZip();
compressor.CreateZip(outputFileName, currentWorkingDirectory, true, "");
Che sembra essere corretto. Tuttavia, ricevo una ZipException che afferma che
size was 0, but I expected 54
Non ho idea di cosa significhi. Qualcuno ha qualche idea o un collegamento a un documento API di qualche tipo?
Soluzione
Si scopre che il problema era il seguente. Stavo cercando di creare un file .zip di tutti gli elementi in una determinata directory e posizionare quel file .zip nella directory. Apparentemente il modo in cui questa libreria funziona, viene creato il file .zip e quindi la directory viene letta in file per file, scrivendo nel file .zip. L'errore si è verificato durante il tentativo di aggiungere il file .zip stesso allo zip! Probabilmente è stato negato l'accesso al file o qualcosa del genere, con conseguente errore sopra. La soluzione semplice era quella di creare il file .ZIP in una directory diversa.
Altri suggerimenti
Qui sono link al loro codice sorgente e un file di aiuto con API documentazione.
Avevo risolto un problema simile gestendolo all'interno del gestore eventi ProgressHandler e passavo ZIPEntry come mittente. Poiché questa è una condizione di errore, dovremmo interrompere l'ulteriore elaborazione del file zip e.ContinueRunning dovrebbe essere impostato come falso
private void ProcessFileHandler(object sender, ProgressEventArgs e)
{
ZipEntry newEntry = sender as ZipEntry;
if (newEntry != null)
{
newEntry.Size = e.Processed;
}
e.ContinueRunning = keepRunning;
return;
}