Tag: dotnetzip

无法解压缩ZLIB / DEFLATE数据

我正在尝试从网络捕获文件(PCAP)中提取压缩字节数据。 来自其中一些数据包的数据没有ZLIB标头(前2个字节,其中第一个字节的低4位始终为8),因此当我尝试使用ZlibStream进行解压缩时会出现ZlibStream 。 标题数据似乎工作正常。 据我所知,ZLIB只是DEFLATE的页眉和页脚,我将没有标题的数据传递给DeflateStream 。 这次DeflateStream不会抛出任何错误,它只是提供了错误的数据(但它给出了正确的长度)…… 这是一个示例数据。 C#代码示例使用DotNetZip: byte[] test3 = new byte[] { 0x1a, 0x6d, 0xf, 0x8d, 0xb6, 0x87, 0x46, 0xdb, 0x43, 0xa3, 0xed, 0xa1, 0xd1, 0xf6, 0xd0, 0x68, 0x7b, 0x68, 0xb4, 0x3d, 0x34, 0xda, 0x1e, 0xb2, 0x44, 0x3a, 0x39, 0x6f, 0x24, 0xae, 0x1f, 0x2, 0x0, 0x0, 0x0, 0xff, 0xff }; static void […]

DotNetZip:将ZipFile转换为byte 数组

我正在使用DotNetZip将文件添加到zip存档中,我已从文件系统中读取该文件。 我想将生成的ZipFile转换为byte []数组。 任何帮助将受到高度赞赏。 我的代码如下所示。 public byte[] AddPrjFile(FileStream shapeFileZip, Uri prjLocation) { string prjFileAbsPath = prjLocation.AbsolutePath; using (ZipFile zip = ZipFile.Read(shapFileZip)) { ZipEntry e = zip.AddFile(prjFileAbsPath); e.FileName = zipFile.Name + “.prj”; } return byte_array; }

在azure blob存储中原位创建zip文件

我将文件存储在blob存储帐户中的一个容器中。 我需要在第二个容器中创建一个zip文件,其中包含第一个容器中的文件。 我有一个使用worker角色和DotNetZip工作的解决方案,但因为zip文件最终可能是1GB大小我担心使用MemoryStream对象进行所有正在进行的工作并不是最好的方法。 我最关心的是内存使用和释放资源,因为这个过程可能每天发生几次。 下面是一些非常简化的代码,显示了worker角色的基本过程: using (ZipFile zipFile = new ZipFile()) { foreach (var uri in uriCollection) { var blob = new CloudBlob(uri); byte[] fileBytes = blob.DownloadByteArray(); using (var fileStream = new MemoryStream(fileBytes)) { fileStream.Seek(0, SeekOrigin.Begin); byte[] bytes = CryptoHelp.EncryptAsBytes(fileStream, “password”, null); zipFile.AddEntry(“entry name”, bytes); } } using (var zipStream = new MemoryStream()) { zipFile.Save(zipStream); […]

如何使用DotNetZip从zip中提取XML文件

我正在使用最新版本的DotNetZip,我有一个包含5个XML的zip文件。 我想打开zip,读取XML文件并使用XML的值设置String。 我怎样才能做到这一点? 码: //thats my old way of doing it.But I needed the path, now I want to read from the memory string xfile = System.IO.File.ReadAllText(strNewFilePath, System.Text.Encoding.Default); using (ZipFile zip = ZipFile.Read(this.uplZip.PostedFile.InputStream)) { foreach (ZipEntry theEntry in zip) { //What should I use here, Extract ? } } 谢谢

使用Ionic Zip Library将文件夹添加到Zip的根目录

我正在尝试做的是使用Ionic Zip库(c#)将文件夹和文件列表全部添加到我的Zip文件的根目录中。 这是我到目前为止所拥有的 string k = “B:/My Documents/Workspace”; private void button1_Click(object sender, EventArgs e) { using (ZipFile zip = new ZipFile()) { //add directory, give it a name zip.AddDirectory(k); zip.Save(“t.zip”); } } 现在,我希望我的拉链看起来像这样。 t.zip 随机文件和文件夹 但它看起来像这样。 t.zip t(文件夹) 随机文件和文件夹 任何帮助将不胜感激,谢谢。

错误无法在此范围内声明局部变量

我试图用DotNetZip解压缩文件,但我在“e”上收到错误 using (ZipFile zip = ZipFile.Read(openFileDialog1.FileName)) { foreach (ZipEntry e in zip) { e.Extract(Environment.CurrentDirectory, ExtractExistingFileAction.OverwriteSilently); } }

DotNetZip如​​何在不创建文件夹的情况下添加所选文件

我想在path添加zip文件”test”所有pdf文件 using (var zip = new ZipFile()) { zip.AddSelectedFiles(“*.pdf”,path); zip.Save(path+”/test.zip”); } 当创建test.zip文件时,有这个目录: **test.zip**\Users\administrator\Documents\vs2010\Projects\my project\**pdf files** 如何使所有pdf文档直接在test.zip中 test.zip\pdf files

将文件添加到现有Zip中

我可以成功地将zip文件夹中的文件解压缩到一个文件夹中,但我不太清楚如何获取这些文件并将它们添加到现有的zip文件中。 我将它们提取到桌面上名为“mod”的目录中,然后我需要将它们添加到另一个zip文件中。 救命? 这是我的提取代码 – ZipFile zip = ZipFile.Read(myZip); zip.ExtractAll(outputDirectory,ExtractExistingFileAction.OverwriteSilently); 感谢您的帮助,谢谢。

使用C#DotNetZip解压缩内存中的zip文件

我正在尝试下载并提取C#中的zip文件,特别是DotNetZip。 当我运行此代码时…… HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(reportUrl); HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse(); Stream stream = response.GetResponseStream(); MemoryStream ms = new MemoryStream(); stream.CopyTo(ms); ms.Seek(0, 0); ZipInputStream zip = new ZipInputStream(ms); zip.Seek(0, 0); ZipEntry e = zip.GetNextEntry(); string s = e.FileName; MemoryStream ms2 = new MemoryStream(); e.Extract(ms2); Extract方法执行后,我得到…… $exception {“Object reference not set to an instance of an object.”} […]

DotNetZip中大型文件存档的压缩问题

问候…. 我正在使用最新的DotNetZip在c#3.5中编写备份程序。 该程序的基础是在服务器上给出一个位置和一个跨区zip文件的最大大小。 从那里它应该遍历给定位置的所有文件夹/文件,并将它们添加到存档,保持确切的结构。 它还应将所有内容压缩到合理的数量。 给定的未压缩文件夹/文件集合可以很容易地为10-25gb,创建的跨区文件每个限制为大约1GB。 我有一切工作(使用DotNetZip)。 我唯一的挑战是实际发生的事情几乎没有。 我选择使用“AddDirectory”方法来简化代码,一般来说它看起来适合我的项目。 看完之后,我第二次猜测这个决定。 鉴于以下代码和存档中的大量文件,我应该压缩每个文件,因为它被添加到zip中吗? 或者Adddirectory方法是否应该提供相同的压缩? 我尝试过Ionic.Zlib.CompressionLevel提供的每个级别的压缩,似乎没有任何帮助。 我应该考虑使用外部压缩算法并将其流式传输到我的DotNetZip文件中吗? using (ZipFile zip = new ZipFile()) { zip.AddDirectory(root.FullName); if (zipPassword.Length > 0) zip.Password = zipPassword; float size = zipGbSize * 1024 * 1024 * 1024; zip.CompressionLevel = Ionic.Zlib.CompressionLevel.BestCompression; zip.AddProgress += new EventHandler(Zip_AddProgress); zip.ZipError += new EventHandler(Zip_ZipError); zip.Comment = “This zip was […]