使用zipstorer类压缩一个有子文件夹的文件夹
我正在使用 zipstorer 类库来压缩文件.我能够通过调用zip.AddFile过程来缩减文件.但是我想扎带,其中也有子文件夹.因此,由此产生的zip文件应正常内部的zip文件内有文件夹和子文件夹结构.我无法做到.如果我通过循环所有文件夹和子文件夹来处理每个文件,则如果调用zip.Addfile,则将导致zip文件,其中所有文件中的所有文件都没有目录结构. 因此,如何使用zipstorer类链度将文件夹缩回.我必须做什么变化? 解决方案 您可以使用(Back)斜杠作为_filenameInZip(SIC)参数来在zip中的目录中添加文件: zip.Addfile(,,"directory/filename.txt",); 或 zip.Addfile(,,"directory\\filename.txt",);
18 2024-04-26
编程技术问答社区
如何用C#语言对图像进行润长编码压缩?
如何使用C#来压缩跑步长度编码的图像?有没有可用的库来支持此? 运行长度编码仅在位图映射上工作吗?如果是这样,我将如何使用C#? 将图像类型转换为位图 我还想问到他们产生的文件类型是什么,他们会保留其文件类型还是将有新的文件类型? 解决方案 我知道这是一个古老的问题,但这是在Google搜索中C#中rle压缩的几件事之一.对于像我这样根本没有图像处理经验的人,这是一个非常令人沮丧的经历,因此希望这个答案能够节省其他一些痛苦. 我知道RLE是一种过时的压缩形式,但是我们中有些人遇到了限制(例如将BMP导出到自定义设备),要求我们使用它.以下需要一个8BPP索引位图才能工作.如果您需要帮助将图像转换为该格式,则可以在线提供大量资源. 我将其放入一个名为BMPCompressor的类中. private enum Compression { // others not necessary for the 8bpp compressio
8 2024-04-26
编程技术问答社区
C#斑马十六进制压缩算法
我目前正在与斑马打印机进行通信的项目.我已经有办法 compress the hex data (The Method EncodeHexAscii compress the数据).但是我找不到一种解压缩数据的方法.这是十六进制数据的特殊压缩逻辑.在斑马打印机的文档中,仅此信息可用 Alternative Data Compression Scheme for ~DG and ~DB Commands 解决方案 我现在已经开发了自己的问题,以解决源代码也可以在 github存储库. using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ZebraHelper { /// /// Alternative Data Compression Scheme for ~DG and ~DB Commands
6 2024-04-26
编程技术问答社区
Sevenzip的压缩事件没有启动
我有一个Winform应用程序使用Sewenzip.dll并实现其能力以压缩提取文件和目录. 我的问题是,我想使用Sevenzip.com类的压缩事件,以跟踪压缩进度并使用进度键显示. 问题是,事件永远不会发射(在调试模式下检查),而所有其他事件都在起作用,例如压缩事件. 我发现其他开发人员遇到了同样的问题,但没有人提供答案. 注意:DLL的提取器类也可以按预期工作,所有事件都在触发,包括提取器.提取事件. 关于如何克服该问题的任何帮助将得到解决. 这是我使用的一些代码: SevenZipCompressor compressor = new SevenZipCompressor(); // NOT FIRING compressor.Compressing += new EventHandler(compressor_Compressing); // Firing as
6 2024-04-26
编程技术问答社区
从C#到Java通过网络发送gzipped数据
我有一个应用程序,该应用程序将来自PC上数据源(例如,Excel或访问)收集的数据发送到Android平板电脑上的接收应用程序.在发送数据之前,我处于压缩数据的测试阶段,然后在收到数据后对其进行解压缩.我正在为此使用GZIP,dotnetzip在C#侧,而内置的GZIPINPUTSTREAM类则在Java侧. 我有问题使它正常工作.当我仅在一侧进行测试(压缩和解压缩以查看数据是否完整)时,一切都很好.它在C#和Java上都起作用.但是,当我到达发送并收到的数据的点时,我会遇到这个问题:"未知格式(魔术号EF1F)".我已经看过其他帖子了,但答案似乎没有帮助. 这是我用来压缩C#方面的代码: public void compressData() { byte[] buffer = Ionic.Zlib.GZipStream.CompressBuffer(this.RawStreamData.ToArray()); this.RawStreamData =
12 2024-04-26
编程技术问答社区
如何使用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());
10 2024-04-26
编程技术问答社区
解压缩xml饲料
我的应用程序从网络下载一个zpipted xml文件,并尝试创建XML读取器: var fullReportUrl = "http://..."; // valid url here //client below is an instance of HttpClient var fullReportResponse = client.GetAsync(fullReportUrl).Result; var zippedXmlStream = fullReportResponse.Content.ReadAsStreamAsync().Result; XmlReader xmlReader = null; using(var gZipStream = new GZipStream(zippedXmlStream, CompressionMode.Decompress)) { try { xmlReader = XmlReader.Create(g
8 2024-04-26
编程技术问答社区
读取压缩数据的MimeKit
使用mimekit读取模仿: var message = MimeMessage.Load("C:\\test\\as2\\RawMIMEMsg.txt"); var part = message.BodyParts.FirstOrDefault(); var ms = new MemoryStream(); part.WriteTo(ms); File.WriteAllBytes("C:\\test\\as2\\MIMEWrittenPart.txt", ms.ToArray()); rawmimemsg.txt看起来像: 我不知道如何使用MimeKit库从part中获取解压缩内容.我看到的唯一方法是WriteTo,但基本上是将此部分写入文件,而不对文件进行解压缩. 解决方案 使用以下内容: if(message.BodyParts.FirstOrDefault() is ApplicationPkcs7Mime part && part.Secure
14 2024-04-26
编程技术问答社区
以编程方式向视频流添加AVI文件头
我有一个捕获设备(数字转换器的类似物:Avermedia USB捕获卡). 当我想使用C#中的DirectShowlib录制视频时,我只会收到帧.我能够使用RawVideo播放器录制帧并播放文件.如何创建像AVI这样的标准视频文件标头?当我想压缩数据时,就会发生第二个问题.当我使用压缩时,我根本无法阅读. 这是我的工作图形架构: 如何使用标题等创建标准AVI或MPEG文件? 解决方案 可播放的文件具有某些结构,并且捕获的数据通常通过所谓的多路复用器过滤器写入该文件.对于AVI格式,标准过滤器为 Avi Mux过滤器.它在输入上使用视频/音频,并将输出的文件转换为兼容文件的流.如果/当此输出连接到文件作者过滤器时,后者将使用适当的标头产生文件. 其他解决方案 看看
16 2024-04-25
编程技术问答社区
在代码中用SevenZipSharp排除文件
我目前正在一个小项目中 现在以下情况:其中一条路径是目录,该目录应递归地压缩(包括其包含的所有文件和子文件夹).在压缩之前,我检查了包括权限在内的几件事. 如果要压缩的当前用户没有对文件或文件夹的权限. 现在,如何在递归模式下排除几个文件和目录? 我已经尝试过这样的事情,但是争论似乎仅存在于CMD中. compressor.CustomParameters.Add("-x", "@C:\\Users\\******\\Desktop\\exclude.txt"); 解决方案 我没有发现Sevenzipsharp排除文件的任何可能性. 相反,我现在使用dotnetzip,它具有删除文件的好方法: ZipFile.RemoveEntry()和ZipFile.RemoveEntries() 例如: foreach (string removePath in Verifier.ExcludePaths) { try { // Rem
2 2024-04-25
编程技术问答社区
用DotNetZip减少文件大小
我想使用SMO备份数据库,然后将备份文件缩回,然后将其上传到我的服务器.这是我的代码 // Backup var conn = new SqlConnection(sqlConnectionString); var server = new Server(new ServerConnection(conn)); var backupMgr = new Backup(); backupMgr.Devices.AddDevice(file.FullName, DeviceType.File); backupMgr.Database = dictionary[StringKeys.Database]; backupMgr.Action = BackupActionType.Database; bac
4 2024-04-25
编程技术问答社区
在C#中高效的小字节数
我有很多很小的物体集合.为了确保数据的存储非常紧凑,我重写了类,将所有信息存储在带有可变字体编码的字节阵列中.这数百万个对象的大多数实例只需要3到7个字节即可存储所有数据. 记忆力后,我发现这些字节阵列总是至少服用32个字节. 是否有一种方法可以更紧凑地存储信息,而不是在字节[]中添加刻度?指出一个非托管的数组会更好吗? class MyClass { byte[] compressed; public MyClass(IEnumerable data) { compressed = compress(data); } private byte[] compress(IEnumerable data) { // ... } private IEnumerable decompress(byte[] compressedData) {
8 2024-04-25
编程技术问答社区
调整jpeg图像的大小是否影响其压缩?
我使用graphics.drawimage方法(请参阅下面的代码片段)调整JPEG的大小.谁能确认这不会影响新图像的压缩? 我已经看过这个线程 jpegs. private byte[] getResizedImage(String url, int newWidth) { Bitmap bmpOut = null; System.IO.MemoryStream outStream = new System.IO.MemoryStream(); //input image is disposable using (Bitmap inputImage = LoadImageFromURL(url)) { ImageFormat format = inputImage.RawFormat; decimal ratio; //ratio ol
14 2024-04-25
编程技术问答社区
使用LZ4Net进行压缩
我正在尝试用LZ4NET压缩多个文件,但我什至不知道如何开始. i具有string[]或List带有filepaths(和相对路径),并希望用lz4将其压缩到一个文件. 稍后我想对其进行解压缩,以照顾相对路径. 解决方案 下载为每个文件创建一个缓冲区: public byte[] FileToByteArray(string fileName) { byte[] buff = null; FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read); BinaryReader br = new BinaryReader(fs); long numBytes = new FileInfo(fileName).Length; buff = br.ReadBytes((int)numBytes); return buff;
16 2024-04-25
编程技术问答社区
压缩wcf web服务的请求和响应soap消息
我引用了此链接:http://www.codeproject.com/Articles/53718/Extending-WCF-Part-II 我创建了调用WCF方法的代理,但是在实现此逻辑之后,我也会收到以下错误: Content Type application/x-gzip was not supported by service http://localhost/DeskWCF/Demo.svc. The client and service bindings may be mismatched. 如果您有任何方法可以压缩WCF的肥皂消息,请帮助我. 预先感谢. 解决方案 查看这些问题,您应该能够使它起作用 如何在WCF 4.5中获得GZIP压缩工作 如何在WCF 4.5
6 2024-04-25
编程技术问答社区
DeflateStream CopyTo没有写任何东西,也没有抛出任何异常。
我基本上直接从MSDN复制了此代码样本,并具有一些最小的更改. CopyTo方法是默默失败的,我不知道为什么.什么会导致这种行为?它通过了一个78 kb的拉链文件夹,其中包含一个文本文件.返回的FileInfo对象指向0 kb文件.没有例外. public static FileInfo DecompressFile(FileInfo fi) { // Get the stream of the source file. using (FileStream inFile = fi.OpenRead()) { // Get original file extension, // for example "doc" from report.doc.cmp. string curFile = fi.FullName; strin
12 2024-04-24
编程技术问答社区
在C#中串联压缩的字节数组
我有存储在数据库中的GZZ数据. 有没有办法将50个单独的GZZ数据表示为一个可能未压缩的GZZ OUTPUTION?结果应与解压缩该50个项目相同,将它们串联,然后将它们进行gz. 我想避免减压阶段. 是否还有一些性能好处是合并已经gz gz的数据而不是gz gzping整个字节数组? 解决方案 是的,您可以连接GZIP流,当解压缩时,它会像您串联未压缩的数据并立即将其全部glike gzze.具体: gzip a gzip b cat a.gz b.gz > c.gz gunzip c.gz 将为您提供相同的c: cat a b > c 然而,与一次gz gzze the件相比,压缩将被降解,尤其是如果您的50件小块都很小,例如不到几个10的k字节.压缩结果总是不同的,并且根据碎片的大小而变大一点. 应注意有关Gzipstream的另一个答案中的评论.我还建议您使用 dotnetzip 而不是. 其他解决方案 我假设仅以zipperip
16 2024-04-24
编程技术问答社区
在C#中渲染一个图像序列以制作视频
我有一系列JPG图像,这些图像我正在捕获并渲染到屏幕上以创建视频. 我使用jpegbitmapdecoder从存储器中解压缩图像,并通过在图像控件上设置源来渲染它.这似乎还可以,但是处理器开销很高.这些图像为1280x720,以30fps运行,我几乎无法跟上计算机(双核2.8GHz).以更高的分辨率运行会导致我扔掉框架.我想尝试下降CPU. 花费的大部分时间似乎都在解码(我的机器上单独解码的简单基准表明我可以解码约40fps).有人知道是否有更快的解码器(DirectX?DirectShow?我可以将某些东西卸载到视频卡上?) 至于渲染,它似乎并不是为这种使用而设计的(实际上我真的很惊讶它起作用了,我只是尝试了它,因为它很容易做到).有其他方法可以渲染可能更快的单个帧吗? 解决方案 听起来您既是在解码和调整JPEG大小.调整大小也可能很昂贵.尝试将解码和调整大小分开(使用最便宜的算法)JPEG.使用 freeimage freeimage 用" jpeg_fas
16 2024-04-24
编程技术问答社区
将许多矩形组合成更少的矩形
我想在相邻时将许多非重叠矩形压缩到较大的矩形中. 我当前算法的伪代码: do compress horizontally using sweep and prune compress horizontal output vertically using sweep and prune while (this output is small than previous output) 这是一个链接到扫描和修剪.. 这很好,但是我想知道是否有一些方法导致矩形输出更少.我认为比我现在所做的还要复杂. 解决方案 ,听起来您的问题是您之间的矩形之间有较小的差距,从而阻止它们将它们聚集在一起.如果您可以访问扫描和修剪方法的源代码,则可以在"重叠"测试中添加缓冲区,但我认为考虑使用R-Tree会更加最佳.这将索引矩形空间,而不会陷入差距等上的限制等. r-tree wiki 这是Sellis等人的相关论文. al.描述R+树: 这是R-Tre
10 2024-04-23
编程技术问答社区
链式哈希表和理解Deflate
我目前正在尝试创建一个自定义 deflate c#. 中的实现 我目前正在尝试实现"模式搜索"部分,其中我拥有32K数据,并试图搜索我的输入的最长模式. rfc 1951 定义Deflate的RFC 1951 关于该过程的说法: 压缩机使用链式的哈希表来查找重复的字符串, 使用在3字节序列上运行的哈希函数.在任何 压缩过程中给定点,令xyz为下一个3个输入字节 被检查(当然,不一定都不同).首先, 压缩机检查XYZ的哈希链.如果链为空, 压缩机只是将X写成字面字节,然后推进一个字节 输入中的字节.如果哈希链不是空的,则表明 序列xyz(或者,如果我们不幸的话,其他一些3个字节与 同样的哈希函数值)最近发生了压缩机 将XYZ哈希链上的所有字符串与实际输入数据进行比较 序列从当前点开始,然后选择最长 匹配. 我确实知道一个哈希功能是什么,并且确实知道了一个散布的功能.但是,什么是"链式的哈希表",如何通过处理大量数据来设计这样的结构(在C#中)?不知所生,我不明白RFC
4 2024-04-23
编程技术问答社区