Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
.NET Framework
File Zip creato con Ziplib non è valido
martedì 27 marzo 2007 - 15.21
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
epiccoli
Profilo
| Newbie
4
messaggi | Data Invio:
mar 27 mar 2007 - 15:21
Buongiorno a tutti !
Vi scrivo nella speranza che qualcuno mi sappia aiutare... Ho utilizzato in un mio progetto la libreria ICSharpCode.SharpZipLib.zip per creare alcuni file zip contenenti diversi file. Ci sono però delle volte che il file zip mi risulta essere danneggiato e che quindi non riesca più ad aprirmelo correttamente. Nel codice non ottengo nessun codice di errore che mi indichi quale possa essere il motivo e quindi per me è andato tutto a buon fine. Il problema è che sembra non esserci una 'regola' e che capiti a caso.
A qualcuno è già successo ??? Mi sapete aiutare ?? Ormai sono sulla soglia di una crisi di nervi...
Ciao,
Emanuela
munissor
Profilo
| Senior Member
270
messaggi | Data Invio:
mar 27 mar 2007 - 19:25
Prova a controllare se hai richiamato Close o Dispose sugli stream interessati....
Ciao!
epiccoli
Profilo
| Newbie
4
messaggi | Data Invio:
mer 28 mar 2007 - 13:54
Ciao, grazie mille per la risposta.
Ti riporto il codice che uso:
Dim s As ZipOutputStream
Dim strZipFileName As String = zipname
s = New ZipOutputStream(File.Create(strZipFileName))
For Each FileSel In arrFiles
NomeFileApp = FileSel.Name
FilePDF = DirFilePdf & "\" & NomeFileApp
Dim fs As FileStream = File.OpenRead(DirFilePdf & "\" & NomeFileApp)
Dim buffer(fs.Length) As Byte
fs.Read(buffer, 0, buffer.Length)
Dim myEntry As New ZipEntry(NomeFileApp)
s.PutNextEntry(myEntry)
s.Write(buffer, 0, buffer.Length)
s.CloseEntry()
Next
'chiudo l'oggetto ZipOutputStream
s.Finish()
s.Close()
Alla fine utilizzo il Close. Secondo te c'è qualcos altro che manca o c'è qualche errore ?
Ti ringrazio per l'aiuto.
Emanuela
munissor
Profilo
| Senior Member
270
messaggi | Data Invio:
mer 28 mar 2007 - 18:26
Il codice sembrerebbe ok. L'unico dubbio che ancora mi rimane è se lo ZipStream chiude il FileStream che tu gli hai passato.
Prova per sicurezza a chiudere anche quello in modo esplicito.
In caso hai provato con versioni diverse di SharpZipLib?
PS: per correttezza dovresti chiudere anche fs una volta che hai finito di utilizzarlo, altrimenti rimane aperto fino a quando il GC decide di finalizzarlo..
Dim fs As FileStream = File.OpenRead(DirFilePdf & "\" & NomeFileApp)
Dim buffer(fs.Length) As Byte
fs.Read(buffer, 0, buffer.Length)
fs.Close()
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !