|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Messaggi: n/a
|
[C#] Problema con GZipStream
Salve a tutti,
sto giocando un po' con gli stream ed in particolare con il GZipStream: riesco senza problemi a comprimere e decomprimere file come segue: Codice:
static void CompressFile(string inFilename, string outFilename)
{
FileStream sourceFile = File.OpenRead(inFilename);
FileStream destFile = File.Create(outFilename);
GZipStream compStream = new GZipStream(destFile, CompressionMode.Compress);
int theByte = sourceFile.ReadByte();
while (theByte != -1)
{
compStream.WriteByte((byte)theByte);
theByte = sourceFile.ReadByte();
}
compStream.Close();
sourceFile.Close();
destFile.Close();
}
Codice:
static void UncompressFile(string inFilename, string outFilename)
{
FileStream sourceFile = File.OpenRead(inFilename);
FileStream destFile = File.Create(outFilename);
GZipStream compStream = new GZipStream(sourceFile, CompressionMode.Decompress, false);
int theByte = compStream.ReadByte();
while (theByte != -1)
{
destFile.WriteByte((byte)theByte);
theByte = compStream.ReadByte();
}
compStream.Close();
sourceFile.Close();
destFile.Close();
}
Il codice che ho buttato giù è il seguente: Codice:
byte[] byteArraySource = File.ReadAllBytes(@"C:\TEST.TXT");
[] byteArrayDestination;
MemoryStream memorySource = new MemoryStream();
MemoryStream memoryDestination = new MemoryStream();
GZipStream compressMemory = new GZipStream(memoryDestination, CompressionMode.Compress);
memorySource.Write(byteArraySource, 0, byteArraySource.Length);
memorySource.Position = 0;
theByte = memorySource.ReadByte();
while (theByte != -1)
{
compressMemory.WriteByte((byte)theByte);
theByte = memorySource.ReadByte();
}
memoryDestination.Position = 0;
byteArrayDestination = new byte[memoryDestination.Length];
memoryDestination.Read(byteArrayDestination, 0, (int)memoryDestination.Length);
compressMemory.Close();
memorySource.Close();
memoryDestination.Close();
FileStream temp = File.Create(@"C:\TEMP.ZIP");
temp.Write(byteArrayDestination, 0, byteArrayDestination.Length);
temp.Close();
Mi illuminate?? grazie a tutti anticipatamente! |
|
|
|
#2 |
|
Messaggi: n/a
|
Up
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:37.


















