如何从C#中的gzip流解析gzip文件头?

时间:2010-08-06 23:12:32

标签: c# gzip

我被迫使用旧版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

对此问题的任何帮助将不胜感激。谢谢!

1 个答案:

答案 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);

    }
}