Vous pouvez utiliser sharpziplib pour lire le fichier sans l'écrire sur le disque. Cela peut être fait comme ceci:
public string Uncompress(string zipFile, string entryName)
{
string s = string.Empty;
byte[] bBuffer = new byte[4096];
ZipInputStream aZipInputStream = null;
aZipInputStream = new ZipInputStream(File.OpenRead(zipFile));
ZipEntry anEntry;
while ((anEntry = aZipInputStream.GetNextEntry()) != null)
{
if (anEntry.Name == entryName)
{
MemoryStream aMemStream = new MemoryStream();
int bSize;
do
{
bSize = aZipInputStream.Read(bBuffer, 0, bBuffer.Length);
aMemStream.Write(bBuffer, 0, bSize);
}
while (bSize > 0);
aMemStream.Close();
byte[] b = aMemStream.ToArray();
s = Encoding.UTF8.GetString(b);
aZipInputStream.CloseEntry();
break;
}
else
aZipInputStream.CloseEntry();
}
if (aZipInputStream != null)
aZipInputStream.Close();
return s;
}
Quelle bibliothèque ZIP utilisez-vous? .NET n'a pas de support intégré pour les fichiers ZIP. – Heinzi
Je crois que .NET * prend * en charge, à partir de v2: http://msdn.microsoft.com/en-us/library/system.io.compression.aspx –
.Net prend en charge la compression gzip mais pas le format de fichier zip. – Guillaume