Torna al Thread

Public Sub SALVA_XLS() Dim nome As String = "" Dim CartellaDocumenti As DirectoryInfo Dim FileDocumenti() As FileInfo Dim strNomefileZIP As String = "" Dim i As Integer Dim strNomefile As String = "" Try strNomefileZIP = _XLS_FOLDER_PATH & "file.zip" If File.Exists(strNomefileZIP) Then File.Delete(strNomefileZIP) End If CartellaDocumenti = New DirectoryInfo(_XLS_FOLDER_PATH) FileDocumenti = CartellaDocumenti.GetFiles 'Definisce la classe del controllo di CRC Dim Crc As Crc32 = New Crc32 'Definisce lo stream di output dove scrivere l’archivio zip Dim zippa As ZipOutputStream = New ZipOutputStream(System.IO.File.Create(strNomefileZIP)) zippa.SetLevel(9) For i = 0 To FileDocumenti.Length - 1 strNomefile = FileDocumenti(i).Name If InStr(strNomefile, "Unico_") = 0 Then 'leggi il file e riportalo su excel 'Definisce una variabile che contiene lo stream del file di origine Dim fileaperto As FileStream = System.IO.File.OpenRead(_XLS_FOLDER_PATH & strNomefile) 'Definisce una variabile di tipo byte della grandezza pari alla lunghezza del ‘file originale Dim contenitore() As Byte = New Byte(fileaperto.Length) {} 'Questa variabile è molto importante perchè definisce una nuova entry nel file dell’ archivio ZIP. Dim z As ZipEntry = New ZipEntry("xls/" & strNomefile) 'Mette il contenuto dello stream in un contenitore di byte fileaperto.Read(contenitore, 0, contenitore.Length) 'Imposta la data di compressione. z.DateTime = DateTime.Now 'Imposta la dimensione del file originale z.Size = fileaperto.Length + 1 'Chiude la variabile che contiene il lo stream del file originale fileaperto.Close() 'Azzera la checksum Crc.Reset() 'Imposta un nuovo valore per la checksum che dipende dai byte del file originale Crc.Update(contenitore) 'Imposta il valore della CRC nella compressione z.Crc = Crc.Value 'Inserisce nell’archivio ZIP una nuova entry zippa.PutNextEntry(z) 'Effettua di fatto la compressione del file scrivendo nella nuova entry create al passo precedente il file comrpesso. zippa.Write(contenitore, 0, contenitore.Length) End If Next If _ID_STORICO = "1" Then strNomefile = "Unico_Individuale.xls" Else strNomefile = "Unico_Consolidato.xls" End If 'Definisce una variabile che contiene lo stream del file di origine Dim fileaperto2 As FileStream = System.IO.File.OpenRead(_XLS_FOLDER_PATH & strNomefile) 'Definisce una variabile di tipo byte della grandezza pari alla lunghezza del ‘file originale Dim contenitore2() As Byte = New Byte(fileaperto2.Length) {} 'Questa variabile è molto importante perchè definisce una nuova entry nel file dell’ archivio ZIP. Dim z2 As ZipEntry = New ZipEntry(strNomefile) 'Mette il contenuto dello stream in un contenitore di byte fileaperto2.Read(contenitore2, 0, contenitore2.Length) 'Imposta la data di compressione. z2.DateTime = DateTime.Now 'Imposta la dimensione del file originale z2.Size = fileaperto2.Length + 1 'Chiude la variabile che contiene il lo stream del file originale fileaperto2.Close() 'Azzera la checksum Crc.Reset() 'Imposta un nuovo valore per la checksum che dipende dai byte del file originale Crc.Update(contenitore2) 'Imposta il valore della CRC nella compressione z2.Crc = Crc.Value 'Inserisce nell’archivio ZIP una nuova entry zippa.PutNextEntry(z2) 'Effettua di fatto la compressione del file scrivendo nella nuova entry create al passo precedente il file comrpesso. zippa.Write(contenitore2, 0, contenitore2.Length) 'Chiude lo stream del file di output e lo svuota dopo aver fisicamente salvato nel file ZIP i risultato della compressione. zippa.Finish() 'Rilascia la variabile zippa.Close() 'RITORNO Catch ex As IOException Throw New Exception(ex.Message) Catch ex As Exception Throw New Exception(ex.Message) End Try End Sub
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5