Asp.Net: zip component for free



Da qualche tempo utilizzo un componente free anzi opensource per creare e gestire file Zip in ASP.NET.  Il componente / libreria si chiama SharpZipLib, e fino a stamattina andava alla perfezione.

Il mio più grande errore è stato cercare info all’estero su questo componente. Comunque con un po’ di fatica, l’ho implementato e gli zip li fa proprio per bene. Il problema però, non appena il mio prodotto ha iniziato a essere utilizzato bene, è saltato subito all’occhio (del sistemista).

Con file di grosse dimensioni finiva la RAM e il server piazzava un bel memory overflow, o più esattamente: (mscorlib)Insufficient system resources exist to complete the requested service

Disperato, e quasi convinto di dover trovare un altro componente, fortunatamente ho pensato agli amici di HTML.it, e tramite loro ho scoperto il sito .Net2theMax.it!

La spiegazione di tutte le righe la trovate su .net2theMax.it, io voglio solo fare un appunto su qualche riga. La mia precedente procedura prendeva il file da comprimere, e lo sbatteva in un array di byte (più o meno) in questo modo:

byte[] buffer = new byte[fs.Length];
fs.Read(buffer, 0, buffer.Length);

Praticamente tutto il file in memoria. In una unica botta. Ma se il file è parecchi mega? Fortunatamente la soluzione non era cambiare componente ma sistemare il buffer:

while (fs.Position < fs.Length)
{
bytesRead = fs.Read(mBuffer, 0, mBuffer.Length);
zip.Write(mBuffer, 0, bytesRead);
crc.Update(mBuffer, 0, bytesRead);
}

E il mondo per un po’ a reiniziato a sorridere. Grazie a tutti e al mio amico Franz.

Se trovi questo articolo su un blog diverso da “blog.merlinox.com” si tratta probabilmente di una copia non autorizzata. L’indirizzo originale di questo articolo è: Asp.Net: zip component for free scritto da .

4 Responses to Asp.Net: zip component for free

  1. john dice:

    zio biscio!

  2. Merlinox dice:

    ehi john suppongo sia una approvazione, vero?

  3. Francesco dice:

    Ciao, mi sapresti dire se c’è qualche componente free che partendo da un file zip riesco a creare un file autoestraente .exe sempre in Asp.Net?

    Grazie mille

  4. Merlinox dice:

    Così al volo ho trovato:
    http://www.componentace.com/sfx-zip-c-sharp.htm
    http://www.example-code.com/csharp/csCreateSfx2.asp

    Ma mi sa che sono a pagamento… però forse con lo stesso sharpziplib puoi fare qualcosa, tipo usare la sua community:
    http://community.sharpdevelop.net/search/SearchResults.aspx?q=self+extracting&s=12

    Ciao e tienimi aggiornato!

Lascia un Commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *

*

È possibile utilizzare questi tag ed attributi XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>