Tag: zip

如何使用ICSharpCode.SharpZipLib将文件夹添加到zip存档

我必须在zip文件中创建两个文件夹,我使用ICSharpCode.SharZipLib.Zip编程方式创建。 我想要: private void AddToZipStream(byte[] inputStream, ZipOutputStream zipStream, string fileName, string fileExtension) { var courseName = RemoveSpecialCharacters(fileName); var m_Bytes = inputStream; if ((m_Bytes != null) && (zipStream != null)) { var newEntry = new ZipEntry(ZipEntry.CleanName(string.Concat(courseName, fileExtension))); newEntry.DateTime = DateTime.Now; newEntry.Size = m_Bytes.Length; zipStream.PutNextEntry(newEntry); zipStream.Write(m_Bytes, 0, m_Bytes.Length); zipStream.CloseEntry(); zipStream.UseZip64 = UseZip64.Off; } } 如何使用ZipEntry创建目录,然后如何将文件添加到Zip存档内的目录?

为什么我的自定义XML在Word保存时不会转移到新版本的DOCX文件?

我正在向docx添加一些自定义XML,以便在我正在编写的应用程序中跟踪它。 我通过ZIP库打开Word文档,并通过官方Open XML SDK路由手动完成它。 两者都有相同的结果,我的XML被插入到文档中的customXml文件夹中。 对于这两种方法,Word中的文档打开正常,并且XML存在。 但是,当我将文档保存为MyDoc2.docx时,例如我的所有XML都消失了。 我究竟做错了什么? Microsoft链接我一直关注: http://msdn.microsoft.com/en-us/library/bb608597.aspx http://msdn.microsoft.com/en-us/library/bb608612.aspx 我从Open XML SDK 2.0中获取的代码: public static void AddNewPart(string document, string fileName) { using (WordprocessingDocument wordDoc = WordprocessingDocument.Open(document, true)) { MainDocumentPart mainPart = wordDoc.MainDocumentPart; CustomXmlPart myXmlPart = mainPart.AddCustomXmlPart(CustomXmlPartType.CustomXml); using (FileStream stream = new FileStream(fileName, FileMode.Open)) { myXmlPart.FeedData(stream); } } } 谢谢,约翰

我们可以使用C#在FTP服务器中解压缩文件吗?

我可以在FTP中提取ZIP文件,并使用C#将此提取的文件放在同一位置吗?

使用ExtractToDirectory方法解压缩会扭曲非拉丁符号

我有几个文件夹,一些文件夹的名称中包含非拉丁符号(在我的情况下是俄语)。 此文件夹正在“D:\ test.zip”中发送到zip存档(由Windows资源管理器)。 然后我执行方法 ZipFile.ExtractToDirectory(@”D:\test.zip”, @”D:\result”); 它成功地解压缩了所有内容,但所有非拉丁符号都变成了错误。 例如,我得到了“D:\ result \ЄбЄ¤л\ file.txt”而不是“D:\ result \ каскады\ file.txt” 。 我的系统的默认编码是windows-1251 ,我通过将Encoding.GetEncoding(“windows-1251″)纳入ExtractToDirectory第三个参数并获得相同的结果来validation。 我也试过UTF-8 ,但在路径中有另外的文物( “D:\ result \ ᪠ \ file.txt” )。 尝试使用Unicode返回有关不支持编码的消息。 当我通过执行方法通过代码创建相同的存档时 ZipFile.CreateFromDirectory(@”D:\zipdata”, @”D:\test.zip”); 然后,即使没有指定特定的编码,也可以使用与问题顶部相同的代码行解压缩。 问题是:如何从存档中获取正确的编码以便在ExtractToDirectory方法中应用它,因为在实际任务存档中来自外部源并且我不能依赖于它“通过手”或编程创建的位置? 编辑 有问题 ,非拉丁符号(中文)也会引起问题,但这个事实就像解决问题一样,而这对我的情况来说确实是个问题。

如何通过使用C#.NET 4.5将文件从ZIP存档读取到内存而不将其首先解压缩到文件中?

.NET Framework 4.5通过System.IO.Compression类添加了对ZIP文件的支持。 假设我的.ZIP存档在根目录中有sample.xml文件。 我想直接从存档到内存流读取此文件,然后将其反序列化为自定义.NET对象。 做这个的最好方式是什么?

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()) […]

ZipPackage类vs Zipfile类

我对这两个类感到困惑,它们似乎都用于创建或提取zip文件? 有人可以解释这个区别吗?

如何从C#.NET 4.5中的zip存档中提取特定目录?

我有以下内部结构的zip文件: file1.txt directoryABC fileA.txt fileB.txt fileC.txt 将文件从“directoryABC”文件夹中提取到硬盘上的目标位置的最佳方法是什么? 例如,如果目标位置是“C:\ temp”,那么其内容应为: temp directoryABC fileA.txt fileB.txt fileC.txt 此外,在某些情况下,我只想提取“directoryABC”的内容,结果将是: temp fileA.txt fileB.txt fileC.txt 如何通过在C#.NET 4.5中使用System.IO.Compression中的类来实现此目的?

MVC3将多个pdfs作为zip文件返回

我有一个视图,它返回一个包含多个页面的pdf(使用iTextSharp),但现在我必须更改它,以便每个页面都是一个单独的pdf(带有它自己的唯一标题)并返回一个zip文件。 我的原始代码如下所示: public FileStreamResult DownloadPDF() { MemoryStream workStream = new MemoryStream(); Document document = new Document(); PdfWriter.GetInstance(document, workStream).CloseStream = false; document.Open(); // Populate pdf items document.Close(); byte[] byteInfo = workStream.ToArray(); workStream.Write(byteInfo, 0, byteInfo.Length); workStream.Position = 0; FileStreamResult fileResult = new FileStreamResult(workStream, “application/pdf”); fileResult.FileDownloadName = “fileName”; return fileResult; } 使用gzip压缩文件看起来很简单,但我不知道如何gzip多个文件并将其作为一个zip文件返回。 或者我应该使用gzip以外的东西,比如dotnetzip或sharpzip? 提前致谢!