Tag: dotnetzip

DotNetZip从其他zip的子集创建zip

我有一个大的zip文件,我需要分成多个zip文件。 在我现在创建的方法中,我有一个List对象。 这是我得到的代码: //All files have the same basefilename/ string basefilename = Path.GetFileNameWithoutExtension(entries[0].FileName); MemoryStream memstream = new MemoryStream(); ZipFile zip = new ZipFile(); foreach (var entry in entries) { string newFileName = basefilename + Path.GetExtension(entry.FileName); zip.AddEntry(newFileName, entry.OpenReader()); } zip.Save(memstream); //this will later go in an file-io handler class. FileStream outstream = File.OpenWrite(@”c:\files\”+basefilename+ “.zip”); memstream.WriteTo(outstream); outstream.Flush(); […]

DotNetZip:如何提取文件,但忽略zipfile中的路径?

试图将文件提取到给定的文件夹,忽略zipfile中的路径,但似乎没有办法。 考虑到其中实现的所有其他好东西,这似乎是一个相当基本的要求。 我错过了什么? 代码是 – using (Ionic.Zip.ZipFile zf = Ionic.Zip.ZipFile.Read(zipPath)) { zf.ExtractAll(appPath); }

创建并流式传输图像存档zip文件以供下载C#

我正在使用MVC3中心爱的DotNetZip归档库来动态生成一个Zip文件,其中包含存储在数据库中的二进制文件的.png图像。 然后,我将生成的Zip文件流式传输出来供用户下载。 (我在保存到数据库之前validation图像数据,因此您可以假设所有图像数据都有效)。 public ActionResult PictureExport() { IEnumerable userPictures = db.UserPicture.ToList(); //”db” is a DataContext and UserPicture is the model used for uploaded pictures. DateTime today = DateTime.Now; string fileName = “attachment;filename=AllUploadedPicturesAsOf:” + today.ToString() + “.zip”; this.Response.Clear(); this.Response.ContentType = “application/zip”; this.Response.AddHeader(“Content-Disposition”, fileName); using (ZipFile zipFile = new ZipFile()) { using (MemoryStream stream = new MemoryStream()) […]

在Mac上的C#上使用DotNetZip压缩文件

我试图在使用DotNetZip的mac上使用以下代码片段在C#中压缩文件或目录。 但是下面我有一些例外,我做错了什么? using Ionic.Zip; namespace CSLab { class Program { static void Main(string[] args) { using (ZipFile zip = new ZipFile()) { zip.Password = “password”; zip.AddDirectory(“./test”); zip.Save(“a.zip”); } } } } Unhandled Exception: System.ArgumentException: ‘IBM437’ is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method. […]

加密的zip文件是否也可以保护其内部目录

我正在使用WinZip AES 256使用DotNetZip创建一个加密的zip文件。但是我能够读取目录甚至删除一些没有加密密钥的zipentries。 据我所知,目录可见性是Zip格式的限制。 我只是想知道,如果这也适用于删除/添加组件到zip文件的任何更改,或者是否存在防止此类更改的方法。 编辑: 快速阅读Zip文件格式似乎表明,双重压缩似乎是防止随机删除/添加zip文件中的 comoponents的唯一解决方案,无论单个条目的加密。

DotNetZip有编码麻烦

我正在使用DotNetZip。 当我归档通常具有英文名称的文件时。 但是当我在结果档案中存档带有俄文名称的文件时,文件名称不正确。 有些人说那串 ZipConstants.DefaultCodePage = 866; 但它没有编译。 我还使用zip.UseUnicodeAsNecessary属性,并将我的文件名转换为utf8和utf7。

在尝试从内部Zip文件(另一个Zip中的Zip)获取流时,获取“无法将其作为Zip文件读取”exception

在C#中,我使用的是DotNetZip,我有一个名为“innerZip.zip”的zip包含一些数据,另一个名为“outerZip.zip”的zip包含innerZip。 为什么我这样做? 好吧,在设置密码时,密码实际上适用于添加到存档而不是整个存档的各个条目,通过使用这个内部/外部组合,我可以设置传递到整个内部zip,因为它是一个条目外面的。 问题是,代码说得比普通单词更好: ZipFile outerZip = ZipFile.Read(“outerZip.zip”); outerZip.Password = “VeXe”; Stream innerStream = outerZip[“innerZip.zip”].OpenReader(); ZipFile innerZip = ZipFile.Read(innerStream); // I’m getting the exception here. innerZip[“Songs\\IronMaiden”].Extract(tempLocation); 为什么我得到那个例外? 内部文件是一个zip文件,所以我不应该得到那个例外吗? 有没有办法绕过这个或者我只需要从外部提取内部,然后访问它? Thanx提前..

有没有办法用另一个库解压缩DynaZip Max文件? FE DotNetZip

我有一个数据库,我们使用以下代码存储使用DynaZip Max Secure压缩的pdf文件: MemoryStream msIN = new System.IO.MemoryStream(); //Input MemoryStream MemoryStream msZip = new System.IO.MemoryStream(); //Compressed MemoryStream BinaryReader objBinaryReader; BinaryWriter objBinaryWriter; public MemoryStream CompressStream(byte[] vbuf) { System.IO.BinaryWriter bw = new System.IO.BinaryWriter(msIN); bw.Write(vbuf); CDZipSNET dz1 = new CDZipSNET(); dz1.ZipMemToMemCallback += new CDZipSNET.OnZipMemToMemCallback(this.ZipMemToMemCallback_event); dz1.ActionDZ = CDZipSNET.DZACTION.ZIP_MEMTOMEM; return msZip; } 这是ZipMemToMemCallback_event代码: public void ZipMemToMemCallback_event(CDZipSNET.MEMTOMEMACTION lAction,ref byte[] lpMemBuf,ref uint […]

如何使用.NET删除Zip文件中的目录?

如何删除.zip中的目录及其中的所有文件(最好使用DotNetZip)? 现在我正在浏览zip中的所有文件,但它不起作用: foreach (ZipEntry e in zip) { //If the file is in the directory I want to delete if(e.FileName.Substring(0, 9) == “FolderName/”) { zip.RemoveEntry(e.FileName); } } 有没有更好的方法,如果没有,我将如何使这项工作?

使用DotNetZip在Zip文件上设置密码

我正在使用DotNetZip来压缩我的文件,但我需要在zip中设置密码。 我试过: public void Zip(string path, string outputPath) { using (ZipFile zip = new ZipFile()) { zip.AddDirectory(path); zip.Password = “password”; zip.Save(outputPath); } } 但输出zip没有密码。 参数path有一个例子的子文件夹: path = c:\path\和内部路径我有subfolder 怎么了?