Decompressione File in formato Zip – Codice VB.NET


Decompressione file in formato ZIP: come fare a gestire la decompressione di file Zip in un qualsiasi file, direttamente da codice VB.NET, senza librerie esterne. Introduzione Il listato ...




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:



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

Introduzione

Il listato seguente permette di effettuare la decompressione file zip, anche creati da altra applicazione di compressione/decompressione. Per il programmatore potrebbe essere molto utile avere il codice già pronto e tale da gestire la decompressione file zip. La funzione che si occupa del tutto è: IngAC_FILE_ZIP_DECOMPRESSIONE(ByVal File_Origine As String, ByVal File_Destinazione As String) As Boolean. Grazie ad essa saremo in grado di ricavare il file originale da un qualsiasi file zippato con pochi passaggi.

Public Function IngAC_FILE_ZIP_DECOMPRESSIONE(ByVal File_Origine As String, ByVal File_Destinazione As String) As Boolean
        IngAC_FILE_ZIP_DECOMPRESSIONE = False
        'controllo che il file esista, altrimenti termina
        'restituendo FALSE
        If File.Exists(File_Origine) = False Then
            Return False
        End If
        'Creazione stream dei file
        Dim Stream_F_Origine As FileStream = Nothing
        Dim Stream_F_Destinazione As FileStream = Nothing
        Dim Zip_File As GZipStream = Nothing
        Dim Dati As Byte() = Nothing
        Try
            'lettura file da decomprimere
            Stream_F_Origine = New FileStream(File_Origine, FileMode.Open)
            'Creazione oggetto per decompressione
            Zip_File = New GZipStream(Stream_F_Origine, CompressionMode.Decompress, True)
            'Dimensioni del byte
            Dati = New Byte(4) {}
            Dim posizione As Integer = CType(Stream_F_Origine.Length, Integer) - 4
            Stream_F_Origine.Position = posizione
            Stream_F_Origine.Read(Dati, 0, 4)
            Stream_F_Origine.Position = 0
            Dim dimensione As Integer = BitConverter.ToInt32(Dati, 0)
            Dim buffer(dimensione + 256) As Byte
            Dim offset As Integer = 0
            Dim total As Integer = 0
            'lettura file compresso
            While True
                Dim bytesRead As Integer = Zip_File.Read(buffer, offset, 256)
                If bytesRead = 0 Then
                    Exit While
                End If
                offset += bytesRead
                total += bytesRead
            End While
            'Scrittura file
            Stream_F_Destinazione = New FileStream(File_Destinazione, FileMode.Create)
            Stream_F_Destinazione.Write(buffer, 0, total)
            'Libera il buffer
            Stream_F_Destinazione.Flush()
        Catch ex As Exception
            'Restituisce FALSE
            IngAC_FILE_ZIP_DECOMPRESSIONE = False
            MsgBox("Errore: " & ex.Message)
        Finally
            'Chiusura stream
            If Not (Stream_F_Origine Is Nothing) Then
                Stream_F_Origine.Close()
            End If
            If Not (Zip_File Is Nothing) Then
                Zip_File.Close()
            End If
            If Not (Stream_F_Destinazione Is Nothing) Then
                Stream_F_Destinazione.Close()
            End If
            IngAC_FILE_ZIP_DECOMPRESSIONE = True
        End Try
    End Function

Come funziona la decompressione file zip da codice VB.NET

La funzione IngAC_FILE_ZIP_DECOMPRESSIONE ha come input:



  • File_Origine che è il file che si vuole decomprimere, che ha qualsiasi estensione, ma il contenuto deve essere zippato.
  • File_Destinazione che invece è il percorso e il nome del file decompresso che si vuole ottenere.

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 funzioneIngAC_FILE_ZIP_DECOMPRESSIONE.

Link utili:

Decompressione file Zip - Codice VB.NET

Decompressione file Zip – Codice VB.NET






Random Post

Immagine GrayScale – Codice VB.NET

Come ottenere un’ immagine grayscale: ovvero convertire in scala di grigi un’immagine colori una semplice funzione in codice VB.NET Introduzione Può capitare che in alcune parti del no...

Vai al post...

Proprietà dell’addizione e della moltiplicazione

– Matematica – Proprietà dell’addizione e della moltiplicazione Le proprietà dell’addizione e della moltiplicazione che possiamo applicare durante lo svolgimento delle vari...

Vai al post...

Pulcini – Interpretazione dei sogni

Sognare i pulcini, un pulcino di gallina o di altri uccelli: significati, interpretazioni e numeri del lotto associati al sogno. I pulcini nella tradizione popolare non hanno una grande importanza ...

Vai al post...

Topo, topi – Interpretazione dei sogni

Sognare un topo o tanti topi, topini , topolini o ratti: significato, interpretazioni e numeri associati al sogno. Molti dei nostri sogni sono comuni a tutte le culture del mondo e, dove non sono pre...

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