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:
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Je continu à chercher, mais merci de votre aide.
Partager