我被迫使用旧版SharpZipLib和标准Microsoft库来执行此操作。我有一个gziped文件,其名称不同于存档中的文件名。我需要解析gzip文件头以返回原始文件名。以下是gzip网站上的文档:
http://www.gzip.org/zlib/rfc-gzip.html#conventions
一个看起来像它的java示例可能正在做我想要的。它看起来像是检查文件头,但实际上并没有读取文件名。
(抱歉无法发布超过1个超链接) (http://www).java2s.com/Open-Source/Java-Document/6.0-JDK-Modules/j2me/java/util/zip/GZIPInputStream.java.htm
对此问题的任何帮助将不胜感激。谢谢!
答案 0 :(得分:0)
好吧,如果终于搞清楚了。它不是最安全的方式或最好的方式,但我需要快速而肮脏的方式来做到这一点。因此,如果其他人需要知道这一点或想要改进它,那么就去吧。
using (FileStream stream = File.OpenRead(filePath))
{
int size = 2048;
byte[] data = new byte[2048];
size = stream.Read(data,0,size);
if (data[3] == 8)
{
List<byte> byteList = new List<byte>();
int i = 10;
while (data[i] != 0)
{
byteList.Add(data[i]);
i++;
}
string test = System.Text.ASCIIEncoding.ASCII.GetString(byteList.ToArray());
Console.WriteLine(test);
}
}