Bonjour,
j'ai besoin de votre aide, j'aimerais pouvoir mettre dans un zip mon tableau de byte et ensuite pouvoir l'extraire pour le réutiliser.
Je sais déjà comment l'extraire sans passer par un fichier :
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 public byte[] DezipByte(string name, string lienZip) { byte[] tableauByte = null; using (var zip = new ZipInputStream(File.OpenRead(lienZip))) { using (var filestream = new FileStream(lienZip, FileMode.Open, FileAccess.Read)) { ICSharpCode.SharpZipLib.Zip.ZipFile zipfile = new ICSharpCode.SharpZipLib.Zip.ZipFile(filestream); ZipEntry item = zipfile.GetEntry(name); if (item != null) { using (StreamReader stream = new StreamReader(zipfile.GetInputStream(item))) { char[] cArray = stream.ReadToEnd().ToCharArray(); tableauByte= new byte[cArray.Length]; for (int i = 0; i < cArray.Length; i++) tableauByte[i] = (byte)cArray[i]; } } } } return tableauByte; }
J'arrive également à zipper mon tableau de byte :
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 public void ZipByte(byte[] Tableau, string name) { using (FileStream Open= new FileStream(lienZip, FileMode.Open)) { using (ZipArchive archive = new ZipArchive(Open, ZipArchiveMode.Update)) { ZipArchiveEntry entry = archive.GetEntry(name); if (entry != null) { entry.Delete(); } ZipArchiveEntry readmeEntry = archive.CreateEntry(name); using (StreamWriter ecriture= new StreamWriter(readmeEntry.Open())) { ecriture.Write(System.Text.ASCIIEncoding.ASCII.GetString(Tableau)); } } Open.Close(); } }
Le problème est que le tableau de byte d'entrée, n'est pas le même que celui de sorti.
Pouvez vous m'aider ?
Merci d'avance,
Bonne journée
Partager