코드에서 파일을 압축하려고합니다. 오류는 정적 void 메서드 CopyStream "dest.Write (buffer, 0, len);"줄에 있습니다. 오류는 "잘못된 상태 (알 수없는 압축 방법 (0x4D))"입니다. 어떤 아이디어가 이런 일이 일어나는 이유는 무엇입니까?C# 코드에서 파일을 압축하는 방법?
public byte[] ZippingFile()
{
MemoryStream dest = new MemoryStream();
FileStream file = new FileStream(tbPath.Text + @"\" + tbFileName.Text, FileMode.Open, FileAccess.Read);
byte[] array = new byte[0];
try
{
ZlibDecompression(file, dest);
array = dest.ToArray();
}
catch (Exception ex)
{
MessageBox.Show("Error: " + ex.Message, "Error", MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
finally
{
file.Close();
dest.Close();
}
return niz;
}
private void ZlibDecompression(Stream src, MemoryStream dest)
{
src.Seek(0, SeekOrigin.Begin);
using (ZlibStream zlibStreamOut = new ZlibStream(dest, CompressionMode.Decompress, CompressionLevel.Level4, true))
{
CopyStream(src, zlibStreamOut);
zlibStreamOut.Close();
dest.Seek(0, SeekOrigin.Begin);
}
}
static void CopyStream(Stream src, Stream dest)
{
byte[] buffer = new byte[1024];
int len = src.Read(buffer, 0, buffer.Length);
while (len > 0)
{
dest.Write(buffer, 0, len);
len = src.Read(buffer, 0, buffer.Length);
}
dest.Flush();
}
ZlibDecompression이 압축되지 않은 파일을 압축 해제 한 것처럼 보였습니다. –