它似乎不是一个有效的存档(字节数组到c#.net中的zip文件)
本文关键字:文件 数组 字节数 字节 中的 net zip 有效 一个 | 更新日期: 2023-09-27 18:20:18
我在将字节数组转换为zip文件时遇到问题。尽管zip文件是使用下面的代码创建的,但当我提取zip文件时,我会收到错误"Cannot open file. It does not appear to be a valid archive"
。
private static void ShowZipFile(string fileName, byte[] data)
{
byte[] compress = Compress(data);
File.WriteAllBytes(fileName, compress);
}
private static byte[] Compress(byte[] data)
{
using (MemoryStream memory = new MemoryStream())
{
using (GZipStream gzip = new GZipStream(memory,
CompressionMode.Compress, true))
{
gzip.Write(data, 0, data.Length);
}
return memory.ToArray();
}
}
GZipStream
基本上不是zip文件,而是gzip文件。这只是压缩的数据,没有任何多个文件、文件名等概念。如果你将文件保存为foo.gz
,你可能会发现你使用的zip工具知道如何解压缩,但你肯定需要明白,它与具有文件项等的foo.zip
不同。
如果您想创建一个实际的zip文件,您可能需要查看SharpZipLib、System.IO.Compression.ZipFile
或类似的库。