J'ai essayé l'exemple de code suivant se basant sur la librairie CSharpZipLib.
Seulement il ne fonctionne pas lorsque l'archive contient des sous dossiers
J'explique cela par le fait que la méthode "GetNextEntry" ne récupère pas les répertoires ...
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 public static bool lblnDecompressionFichier(string lstrArchive, string lstrRepertoireDestination) { try { ZipInputStream zipIStream = new ZipInputStream(File.OpenRead(lstrArchive)); ZipEntry theEntry; while ((theEntry = zipIStream.GetNextEntry()) != null) { System.Console.WriteLine("File " + theEntry.Name); if (theEntry.IsDirectory) Directory.CreateDirectory(lstrRepertoireDestination + theEntry.Name); else { int size = 2048; byte[] data = new byte[size]; FileStream fs = new FileStream(lstrRepertoireDestination + theEntry.Name, FileMode.Create); while ((size = zipIStream.Read(data, 0, data.Length)) > 0) { fs.Write(data, 0, size); } fs.Flush(); fs.Close(); } } zipIStream.Close(); return true; } catch (Exception ex) { Console.WriteLine("Erreur : " + ex.Message); return false; } }
Comment faire alors ?
merci
Partager