2

我正在为基于 .NET 的 CMS 编写一个插件,我想在它第一次运行时解压一棵 javascript、CSS 和图像文件树。因为我只想发送一个 dll,所以我打算压缩这些目录并将它们存储为资源。然后当插件运行时,它会检查必要的文件是否存在,如果不存在,它将解压缩它们。

我知道资源是“扁平的”,因为您无法设置目录结构,因此某种形式的打包是我能看到的唯一方法。

问题是,首先,这是可以接受的事情吗?其次,.NET 中是否有任何库可以让我这样做?我想如果我想使用内置插件,我可能不得不使用 GZip 而不是 Zip,但是有没有首选的方法来做我想要实现的目标?


只是为这个问题添加一些东西 - 我知道一个常见的方案是使用 .tar.gz,我目前正在这样做。但由于某种原因,这让我觉得不是最理想的,因为我必须导入外部库才能像这样工作。我认为这可能是一件很常见的事情,可以通过一种或两种方式在本地进行。

4

1 回答 1

2

有几种方法可以打包和压缩 .net http://msdn.microsoft.com/en-us/library/system.io.packaging.aspx附带的文件组(我认为在 .net 3.0 中发布)和http://msdn.microsoft.com/en-us/library/system.io.compression.aspx(.Net 4.5 中的新功能)

您还可以使用几个免费的开源库(Sharp Zip 库: http: //www.icsharpcode.net/opensource/sharpziplib/和 DotNetZip 库http://dotnetzip.codeplex.com/)。可能还有其他人。我已经使用了它们以及 Packaging api。我喜欢 DotNetZip,因为它易于使用,但你可以很快地使用它们中的任何一个。

压缩资源是有意义的——这是对空间的巧妙利用——但你的资源不必直接映射到你将如何/在哪里提取它们(因为你编写代码来提取和编写可以存储它们的资源如果它更有意义,则平坦)。

于 2012-10-30T00:30:11.097 回答