问题标签 [dotnetzip]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net-mvc - ASP.NET MVC:如何从流中返回文件
我正在尝试返回一个压缩文件
但作为响应,它返回一个错误(在 XML 中):
XML 解析错误:找不到元素位置:moz-nullprincipal:{122aa411-1418-43f5-b950-4347af7c7217} 第 1 行,第 1 列:
我的回复有什么问题(对于我使用 DotNetZip 的 zip 文件)?
c# - DotNetZip 阻塞文件
有人能解释为什么 DotNetZip 会在文件上旋转它的轮子吗?我有这个文件,它受版权保护且不可分发,不会被压缩。我可以获取该文件的早期版本,也可以获取更高版本的文件,它会很好地压缩。
zip 实用程序不应该关心版本,所以我假设它认为文件以某种方式损坏。我该如何调试这个问题?当我单步执行代码时,问题不会发生,但如果我让它运行,它会在保存这个特定文件时停止。这是库中的代码:
如果我在该循环中放置一个断点并让它单独保存每个文件,那么当它看到“坏文件”时它不会阻塞。
有什么想法吗?我将不胜感激!
编辑1:
为了清楚起见,当我说“窒息”时,我的意思是它进入某种无限循环,并且不会继续压缩“坏文件”并移动到其余部分。此外,这是一个被很多人使用的文件,所以它不应该是损坏的。
编辑2:
我把它缩小到以下几点:
该压缩模式会导致问题。我很确定这是某种错误。另一种压缩方法 Bzip2 非常慢。我不确定我将如何解决这个问题。
编辑 3:
DotNetZip 确实很奇怪。我通过将压缩级别调整为此来修复它:
这解决了问题,但几分钟后我又回来了,它不再起作用了。Bzip2 仍然有效,但就像我之前所说的,它非常慢。所以,我开始弄乱 ZipFile API 的其他部分,并添加了以下内容:
这使它现在可以工作。不知道真正的bug是什么?
c# - 通过遍历数组来归档每个字符串
我目前正在制作一个允许用户输入最多 6 个目录的软件,每个目录都保存为一个字符串(在一个数组中),然后循环用于检查数组以及任何不为空的内容,即实际上分配目录意味着将其压缩到自己的存档中。这是我到目前为止的代码。
我要做的是将给定位置的第一个用户保存到 tmpZip0.7z,将第二个用户保存到 tmpZip1.7z 等等,但目前它所做的只是将每个目录添加到 tmpZip0.zip。
另外作为旁注,我将如何在选择要存档的目录之后命名每个存档?
我目前正在使用 DotNetZip (Ionic.Zip) dll。
我希望我提供了足够的信息。
c# - 使用 dotnetzip 在 zip 文件中创建虚拟目录树
我正在尝试从代码创建一个 zip 文件,我正在使用dotnetzip
我想在磁盘上不存在的文件夹中创建一个目录树。我该怎么做呢?
我尝试过使用AddDirectory
,但这似乎想在磁盘上找到目录。我也尝试过 AddEntry 但这需要一些内容。
我的文件使用 FileStream 选项存储在 SQL Server 中,并在那里按层次结构组织。
我编写了这个递归方法来做到这一点,但 AddDirectory 行不起作用。
c# - 解压 C# 后运行自解压 exe - DotNetZip
我正在尝试创建一个自解压 exe。创建它是没有问题的。我面临的问题是
- 设置exe所在的解压路径
- 运行提取的exe。
对于第二部分,很可能我必须使提取路径正确。我正在使用DotNetZipLibrary中的以下修改代码
c# - 使用 dotnetzip 库压缩流时文件损坏
文件已创建,大小似乎还可以,但是当我双击它时,它说它的格式错误或文件已损坏。
这是我正在使用的代码
然后在调用方法中
getDocument() 在内部调用 Compress
最后那个方法
有任何想法吗?提前致谢!吉列尔莫。
dotnetzip - DotNetZip 性能问题,但仅在一台特定服务器上
DotNetZip 库有一个奇怪的性能问题。
在应用程序(在 asp.net 下运行)中,我从数据库中读取一组文件,并将它们即时打包成一个 zip 文件供用户下载。
在我的开发笔记本电脑上一切正常。一个大约 10MB 的 zip 文件,默认压缩率大约需要 5 秒才能完成。但是,在客户的开发服务器上,压缩同一组文件大约需要 1-2 分钟。我什至经历了更长的时间,长达几分钟。压缩运行时 CPU 利用率为 100%,否则保持在 0% 左右,因此不是由于过载。
更有趣的是,在生产服务器上,大约需要 20 秒才能完成。
我应该从哪里开始寻找?
一些硬件规格:
我的笔记本电脑
在具有 2 个内核和 4GB RAM 的专用虚拟机上运行的开发环境。
- 酷睿 i5 M540 2,5GHz
- 8 GB 内存
- Win7
开发服务器
根据我的电脑上的属性对话框(可能是虚拟化的)
- 英特尔至强 5160 3GHz
- 540MB 内存
- 视窗 2003 服务器
任务管理器报告单核
生产服务器
根据我的电脑上的属性对话框(可能是虚拟化的)
- 氙气 5160 3GHz
- 512MB 内存
- 视窗 2003 服务器
任务管理器报告双核
更新 服务器正在 VMWare 主机上运行。发现隐藏在任务栏中的 VMWare 图标。
c# - DotNetZip 从其他 zip 的子集创建 zip
我有一个很大的 zip 文件,我需要将其拆分为多个 zip 文件。在我现在创建的方法中,我有一个 List 对象。
这是我得到的代码:
这是我在 save() 调用中遇到的错误:
{Ionic.Zlib.ZlibException:Ionic.Zlib.InflateManager.Inflate(FlushType flush) 在 Ionic.Zlib.ZlibCodec.Inflate(FlushType flush) 在 Ionic.Zlib.ZlibBaseStream.Read(Byte [] Ionic.Zlib.DeflateStream.Read(Byte[] buffer, Int32 offset, Int32 count) at Ionic.Crc.CrcCalculatorStream.Read(Byte[] buffer, Int32 offset, Int32 count) at Ionic .Zip.SharedUtilities.ReadWithRetry(Stream s, Byte[] buffer, Int32 offset, Int32 count, String FileName) at Ionic.Zip.ZipEntry._WriteEntryData(Stream s) at Ionic.Zip.ZipEntry.Write(Stream s) at Ionic .Zip.ZipFile.Save() 在 Ionic.Zip.ZipFile.Save(Stream outputStream) 在
我究竟做错了什么?
asp.net - DotNetZip 库“拒绝访问路径”
我正在尝试创建一个 zip 文件并使用 ASP.NET 应用程序中的 DotNetZip 库保存它。但由于某种原因,我得到了一个
访问路径被拒绝
当我尝试保存它时出错。
我将其更改TempFileFolder
为另一个文件夹并授予了权限。仍然没有运气。
我发现了一个问题,但答案对我没有帮助。
从上述问题中,一个答案提到:
此外,您示例中的 tempFilePath 不包含完整路径,可能是它试图将 ZIP 保存到与您期望的文件夹不同的文件夹中(并已分配权限)?
即使我提到了,如何确定它试图保存到哪个文件TempFileFolder
夹D:\temp\
?
有什么想法吗?
c# - DotNetZip - 如何在不创建单独文件的情况下保存回原始流
我正在一个系统上工作,我有一个流(可搜索),我从中读取 ZIP 文件,然后将修改后的 ZIP 文件写回该流。这样做会导致文件损坏。这可以使用以下代码进行演示: