Compressione File in formato Zip – Codice VB.NET


Compressione file in formato ZIP: come fare a gestire la compressione Zip di un qualsiasi file, direttamente da codice VB.NET, senza librerie esterne. Introduzione Il listato seguente permette di effettuare la compressione file di qualsiasi ...




Categoria dell'articolo: Codice VB.NET

Listati in codice Visual Basic.NET, elaborati o rielaborati e adattati da IngAC con la versione 2015. Funzioni e subroutine varie utili alla creazione di programmi.





Autore articolo:



Compressione file in formato ZIP: come fare a gestire la compressione Zip di un qualsiasi file, direttamente da codice VB.NET, senza librerie esterne.

Introduzione

Il listato seguente permette di effettuare la compressione file di qualsiasi formato: testo, immagine, audio, pdf e fornendo in output un file zippato, gestibile da qualsiasi applicazione di compressione/decompressione. Per il programmatore potrebbe essere molto utile avere il codice già pronto e tale da gestire la compressione file su cui effettuare le più svariate operazioni. La funzione che si occupa del tutto è: IngAC_FILE_ZIP_COMPRESSIONE(ByVal File_Origine As String, ByVal File_Destinazione As String) As Boolean. Grazie ad essa saremo in grado di ricavare un file zippato con pochi passaggi.

google_ad_width = 336;
            google_ad_height = 280;
            google_color_border="DDDDDD";
            google_color_bg="FFFFFF";
            google_color_link="232323";
            google_color_url="DD362F";
            google_color_text="373737";
            google_ad_client = "ca-pub-1720332600334127";
            google_ad_slot = "4667841093";
            google_ad_host="pub-9280273811890686";
 
 
 
 
 
Public Function IngAC_FILE_ZIP_COMPRESSIONE(ByVal File_Origine As String, ByVal File_Destinazione As String) As Boolean
        'inizialmente la funzione restituisce false        
        IngAC_FILE_ZIP_COMPRESSIONE = False
        'controlla se il file di partenza esiste
        If File.Exists(File_Origine) = False Then
            Return False ' restituisce esito negativo ed esce
        End If
        ' creazione degli stream
        Dim Buffer As Byte() = Nothing
        Dim Stream_F_Origine As FileStream = Nothing
        Dim Stream_F_Destinazione As FileStream = Nothing
        Dim FileZip As GZipStream = Nothing
 
        Try
            ' Leggo lo stream dati del file di origine
            Stream_F_Origine = New FileStream(File_Origine, FileMode.Open, FileAccess.Read, FileShare.Read)
            ' metto nel buffer i byte del file di origine
            Buffer = New Byte(Stream_F_Origine.Length) {}
            Dim Dimensione As Integer = Stream_F_Origine.Read(Buffer, 0, Buffer.Length)
            'apro un stream per il file di destinazione(zip)
            Stream_F_Destinazione = New FileStream(File_Destinazione, FileMode.OpenOrCreate, FileAccess.Write)
            ' inizializzo il file compresso
            FileZip = New GZipStream(Stream_F_Destinazione, CompressionMode.Compress, True)
            'Scrivo nel file compresso i dati letti precedentemente messi in buffer
            FileZip.Write(Buffer, 0, Buffer.Length)
            MsgBox("Operazione terminata.")
        Catch ex As ApplicationException
            MsgBox("Errore: " & ex.Message)
            Return False
        Finally
            'libero la memoria
            If Not (Stream_F_Origine Is Nothing) Then
                Stream_F_Origine.Close()
            End If
            If Not (FileZip Is Nothing) Then
                FileZip.Close()
            End If
            If Not (Stream_F_Destinazione Is Nothing) Then
                Stream_F_Destinazione.Close()
            End If
            IngAC_FILE_ZIP_COMPRESSIONE = True
        End Try
    End Function



Come funziona la compressione file da codice VB.NET

La funzione IngAC_FILE_ZIP_COMPRESSIONE ha come input:

  • File_Origine che è il file che si vuole comprimere, che ha qualsiasi estensione.
  • File_Destinazione che invece è il percorso e il nome del file zippato (non necessariamente con estensione *.zip).

Come output si avrà la creazione del file nella posizione desiderata; la funzione restituisce TRUE se è tutto ok, FALSE se qualcosa è andato storto.

Il funzionamento è commentato direttamente nel codice. Infine, ricordate di inserire Imports System.IO e Imports System.IO.Compression per poter usare la funzione IngAC_FILE_ZIP_COMPRESSIONE.

Link utili:

Compressione file Zip - Codice VB.NET

Compressione file Zip – Codice VB.NET






Random Post

Spezzatino ortolano – Ricette semplici

Spezzatino ortolano – Ricette semplici. Ingredienti dello spezzatino ortolano: 400 g di polpa di vitello; 1 cipolla; 1 bicchiere di vino bianco secco; 2 foglie d’alloro; 1 cucchiaino di sp...

Vai al post...

Pino, albero – Interpretazione dei sogni

Sognare un albero di pino: significato e interpretazione del sogno. Numeri della smorfia associati al pino. Il pino in un sogno è un simbolo di longevità. Si tratta di un albero maestoso e bellissim...

Vai al post...

Bibiana, Viviana – Significato dei nomi – 2 dicembre

Bibiana, Viviana – Significato dei nomi. Onomastico: 2 dicembre. Da dove proviene il nome Bibiana? Da dove deriva? Cosa significa? Ecco le risposte. Il nome deriva probabilmente dall’etrus...

Vai al post...

Rasoio, rasoi – Interpretazione dei sogni

Il rasoio nei sogni: significati, interpretazioni e numeri della smorfia associati Il rasoio, sia esso quello classico da barbiere, sia esso quello usa e getta o quello del nonno con lame intercambiab...

Vai al post...
Disclaimer:


Questo blog NON è un prodotto editoriale ai sensi della legge n° 62 del 7 marzo 2001. Le immagini tratte da internet che possano violare i diritti di autore, previa comunicazione, attraverso la sezione -contatti-, verranno prontamente rimosse o sostituite.

Copyright:


I contenuti presenti su ROMOLETTO BLOG dei quali è autore il proprietario del blog non possono essere copiati, riprodotti, redistribuiti perché appartenenti all autore stesso. Si vieta la copia e la riproduzione dei contenuti in qualsiasi modo o forma. Si vieta altresì la pubblicazione e la redistribuzione dei contenuti non autorizzata espressamente dell autore.


Copyright © 2011 / 2017 - ROMOLETTO BLOG - All Right Reserved

IngAC

Informazioni su Romoletto

Ingegnere Civile, Blogger, Programmatore VB.NET, Lezioni private per scuole medie inferiori e superiori. Per contattarmi scorri la home fino in fondo e vai al form -Contatti-

Navigazione per Articoli della stessa Categoria