我正在寻找一个开源的c#库,但允许在封闭的源项目中进行开发(因此类似于MIT / BSD样式)允许我使用压缩文件。我真的不是那么挑剔使用什么压缩,只是它是常见的东西(.zip,.rar,.tar,.tar.gz等...)。
我需要此功能的原因是我正在构建一个Web应用程序平台,现在是能够为平台构建和分发模块(或插件)的最佳和最简单的方法,我认为是使用压缩文件。压缩文件将保存.dll文件,其中包括源代码和剃刀视图以及任意数量的支持文件(图像,dotlesscss,javascript等等)。我想要做的是通过Web应用程序平台本身,允许用户只能上传一个压缩文件,让Web应用程序复制文件,提取其中的所有文件,并复制提取的文件进入正确的位置。
答案 0 :(得分:6)
这已经内置到.net框架中:-)只需检查压缩命名空间:
http://msdn.microsoft.com/en-us/library/system.io.compression.aspx
答案 1 :(得分:2)
答案 2 :(得分:0)
.net已经在system.io.compression
中内置了对gzip和deflate的支持答案 3 :(得分:0)
如果您想要ZIP功能,那么.Net Framework中不存在真正,您需要转到SharpZipLib或DotNetZip等第三方库。 SharpZipLib不是BSD,它是GPL或LGPL,根据您的描述可能不适合您。 DotNetZip是Ms-PL,类似于BSD,检查http://www.opensource.org/licenses/ms-pl。
GZIP流在System.IO.Compression命名空间中可用,该命名空间内置于.NET Framework基类库,但该流不读取或解压缩tar.gz文件,我想这就是你要做的想要使用,如果您将多个文件捆绑在一起。 GZIP本身默认只在压缩存档中存储一个文件,你可以使用该GZipStream来执行那个,但它不会执行Tars。 SharpZipLib做Tars,但是......许可证。
有一些Ms-PL第三方(小)tar库,结合.NET中的GZIP,可以让你轻松阅读tar.gz(或.tgz)文件。
http://cheeso.members.winisp.net/srcview.aspx?dir=Tar
答案 4 :(得分:0)
如果要将多个文件打包到一个压缩文件中,请考虑使用System.IO.Packaging中的类 - http://msdn.microsoft.com/en-us/library/ms569886.aspx - 允许将文件放入Zip文件(在您的内容之上需要一个额外的XML文件)。 / p>