Tableau de byte dans un zip
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:
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:
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