我是否可以在不使用任何库(不使用.net zip类)的情况下在c#中以编程方式创建zip文件(未压缩)

我是否可以在不使用任何库(不使用.net zip类)的情况下在c#中以编程方式创建zip文件(未压缩),c#,asp.net,.net,zip,C#,Asp.net,.net,Zip,我希望了解zip文件的结构,并考虑创建自己的zip库,该库能够在不进行任何压缩的情况下压缩某些文件。尽管在.net和第三方中已经存在一些其他的库,它们也可以做到这一点,但我希望自己能做到这一点 我开始阅读zip文档的结构: https://users.cs.jmu.edu/buchhofp/forensics/formats/pkzip.html 虽然这对我解释了一些关于zip结构的问题,但是有没有人已经尝试从头开始创建zip文件(即,一点一点地创建) 这不仅仅是一个问题,而是一个关于如何从您

我希望了解zip文件的结构,并考虑创建自己的zip库,该库能够在不进行任何压缩的情况下压缩某些文件。尽管在.net和第三方中已经存在一些其他的库,它们也可以做到这一点,但我希望自己能做到这一点

我开始阅读zip文档的结构:

https://users.cs.jmu.edu/buchhofp/forensics/formats/pkzip.html
虽然这对我解释了一些关于zip结构的问题,但是有没有人已经尝试从头开始创建zip文件(即,一点一点地创建)


这不仅仅是一个问题,而是一个关于如何从您自己的c#(或其他类似语言)代码中一点一点地创建zip文件的公开讨论。

System.IO.Compression中有一个
GZipStream
类,允许使用Gzip压缩流。据我所知,这是BCL中唯一的压缩类。

当然有可能。像DotNetZip和SharpZipLib这样的库是用C#编写的,那么为什么它不能工作呢?例如,您可以使用BinaryWriter来编写标题和条目的各个部分。但是我认为这样一个开放式的讨论对于StackOverflow来说是离题的。我如何构建zip文件的标题和条目?通过阅读您提供的链接文档,然后使用BinaryWriter的各种方法编写值。是否需要crc32,压缩大小和解压大小。我不认为gzip格式和zip格式是一样的。它们都使用deflate作为算法,因此DeflateStream应该可以压缩单个zip文件项。我想从头开始编写自定义zip程序,而不使用.net内置的zip类。@Dirk GZip与zip不同。Zip是一种存档格式。但是,GZipStream是压缩类中唯一的压缩类BCL@Georg:如何在不使用BCL压缩类的情况下手动创建它。因为它不符合我的需要。@ManishRawat在这种情况下,你必须自己实现一个压缩算法——或者你重用一个库,因为自己实现它需要很多工作