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.
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:
- MSDN -> Open File
- MSDN -> GZipStream
- Visual Studio Microsoft
- Download Gratuiti per lo Sviluppo Software Microsoft
- Iprogrammatori.it

Compressione file Zip – Codice VB.NET
Link sponsorizzati inseriti nella pagina.
Random Post
PUBBLICITÀ
Disclaimer:
|
Copyright:
|