Tag: zip

使用c#计算Zip文件中的文件数

我正在生成一些.csv文件,我需要在Zip文件中压缩它。 好吧,我有一个框架来做这个,可能一切都会好的。 但! 正如TDD所说,我可以编写代码,经过一些测试! 我的第一个测试听起来很简单,但是我在阅读Zip文件时遇到了一些问题,有人知道一种简单的方法来计算我的zip文件中的文件数量吗?

在word文档中编辑自定义XML部分有时会破坏文档

我们有一个系统可以在Word文档中存储一些自定义模板数据。 有时,更新此数据会导致Word抱怨文档已损坏。 发生这种情况时,如果我解压缩docx文件并将内容与先前版本进行比较,则唯一的区别似乎是customXML\item.xml文件中的预期更改。 如果我使用7zip重新压缩内容,它似乎工作正常(Word不再抱怨文档已损坏)。 (简化)代码: void CreateOrReplaceCustomXml(string filename, MyCustomData data) { using (var doc = WordProcessingDocument.Open(filename, true)) { var part = GetCustomXmlParts(doc).SingleOrDefault(); if (part == null) { part = doc.MainDocumentPart.AddCustomXmlPart(CustomXmlPartType.CustomXml); } var serializer = new DataContractSerializer(typeof(MyCustomData)); using (var stream = new MemoryStream()) { serializer.WriteObject(stream, data); stream.Seek(0, SeekOrigin.Begin); part.FeedData(stream); } } } IEnumerable GetCustomXmlParts(WordProcessingDocument doc) { […]

c#将参数传递给另一种方法

我正在尝试定义一个用于绘制图形的辅助类,我被告知使用Zip方法将数组X和Y的每个元素传递给另一个方法,但它没有很好地解决,可以任何专家点我做错了什么? 我找不到使用谷歌的任何类似情况。 或者只是我过于富有想象力,这种方式根本无法解决? 我已经看到了使用Zip方法计算x,y点对的示例,但没有作为参数传入。 情况:我的程序有2个函数和1个委托,第一个叫做PlotXYAppend的函数用来调用委托PlotXYDelegate然后传入方法Points.addXY进行绘图,我之所以使用chart.Invoke这里是针对线程的安全理由。 但我遇到的问题是委托或plotxyappend一次只取一对点,所以我想出了一个方法,即创建另一个名为PlotXYPass的函数,将一对XY点传递给plotxyappend来获取它工作,但我认为有一些我无法解决的问题,知识分子告诉我他们不喜欢我放在这个function中的参数。 我非常感谢任何帮助。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms.DataVisualization.Charting; namespace LastTrial { public class PlotHelper { double[] X = { 1, 2, 3, 4, 5, 6 }; double[] Y = { 1, 2, 3, 4, 5, 6 }; Chart chart;// declare chart as chart type Series dataSeries;// […]

如何使用SharpCompress的’BZip2Stream来压缩字符串?

我试图使用SharpCompress’BZip2Stream压缩字符串(str)但无法实现它。 以下是我到目前为止的代码, public static string Compress(string str) { var data = Encoding.UTF8.GetBytes(str); using (MemoryStream stream = new MemoryStream()) { using (BZip2Stream zip = new BZip2Stream(stream, SharpCompress.Compressor.CompressionMode.Compress)) { zip.Write(data, 0, data.Length); var compressed = Encoding.UTF8.GetString(stream.ToArray()); return compressed; } } } 无论我传递给str是什么字符串,它总是返回BZh 。 任何帮助是极大的赞赏!

C#似乎无法正确添加图像到ziparchive

我正在尝试将一堆文件添加到c#中的zip文件中,但它似乎无法正常工作。 using (var memoryStream = new MemoryStream()) { using (var zip = new ZipArchive(memoryStream, ZipArchiveMode.Create, true)) { for (int i = 0; i < kaart_data.GetLength(0); i++) { Image img = array[i]; var file = zip.CreateEntry(i + ".bmp"); using (var stream = new MemoryStream()) { img.Save(stream, ImageFormat.Bmp); using (var entryStream = file.Open()) { stream.CopyTo(entryStream); } } […]

使用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.”} […]

如何使用C#validation文件是受密码保护的ZIP文件

给定文件的路径,如何validation该文件是受密码保护的zip文件? 即,我该如何实现这个function? bool IsPasswordProtectedZipFile(string pathToFile) 我不需要解压缩文件 – 我只需要validation它是ZIP并且已经受到一些密码的保护。 谢谢

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

如何加密.zip文件?

是否可以加密Zip文件? 我知道加密用于使.txt文件不可读,直到用密钥解密。 虽然我想对.zip文件做同样的事情。 我有多个文件,我希望用户通过我正在创建的程序从互联网上下载,所以我想我会在.zip中压缩它们的文件然后加密Zip以增加安全性。 (我不希望用户在没有串行代码的情况下访问.zip中的文件) 我打算将“序列密钥”保存在一个程序可以获得的数据库中。 我是以错误的方式解决这个问题的?

从文件夹中的所有文件创建zip文件

我正在尝试从文件夹中的所有文件创建一个zip文件,但无法在线找到任何相关的代码段。 我正在尝试做这样的事情: DirectoryInfo dir = new DirectoryInfo(“somedir path”); ZipFile zip = new ZipFile(); zip.AddFiles(dir.getfiles()); zip.SaveTo(“some other path”); 很感谢任何forms的帮助。 编辑:我只想压缩文件夹中的文件,而不是它的子文件夹。