Compression de plusieurs fichiers
Bonjour,
Je suis à la recherche d'un moyen de compression en fichier ZIP de plusieurs fichiers.
Les fichiers ne sont pas forcement dans le même répertoire.
Le fichier zip n'existe pas, il faut le créer pour ajouter les fichiers.
Je précise que je suis sous XP 64 bits avec Visual 2010, donc je ne peux pas utiliser VS2012 et les nouveaux Objet "System.IO.Compression." du frameworks 4.5.
Pour le moment j'ai trouvé cela:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
Imports System.IO
Imports System.IO.Compression
Public Function compresserFichier(ByVal cheminDestination As String) As Boolean
' cheminDestination : chemin complet du fichier compressé à créer Actuellement sur le bureau "file.zip"
Dim line As String = ""
Try
If File.Exists(cheminDestination) Then
File.Delete(cheminDestination)
End If
For Each i As Integer In liste.Keys ' liste = un dictionnaire contenant tous les fichiers, chemin inclut
line = liste(i)
Dim monFileStream As New FileStream(line, FileMode.Open)
Dim monBuffer(monFileStream.Length) As Byte
monFileStream.Read(monBuffer, 0, CInt(monFileStream.Length))
monFileStream.Close()
If (File.Exists(cheminDestination)) Then
monFileStream = New FileStream(cheminDestination, FileMode.Append) ' Create)
Else
monFileStream = New FileStream(cheminDestination, FileMode.Create)
End If
Dim monGZipStream As New GZipStream(monFileStream, CompressionMode.Compress, False)
monGZipStream.Write(monBuffer, 0, monBuffer.Length)
monGZipStream.Close()
Next
Return True
Catch ex As Exception
Return False
MsgBox(ex.Message)
End Try |
Ce code, que que j'ai légèrement adapté (pas forcement en bien), a été trouvé sur le net, mais tout se passe bien mise à part que dans le zip il me crée qu'un fichier qui cumule tous les autres et sans extension donc inutilisable.
Je continu à chercher, mais merci de votre aide.