问题标签 [sharpcompress]

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.

0 投票
0 回答
1030 浏览

c# - Unrar WinRar 5.5 C# 压缩包

2017 年 7 月,WinRar 发布了 5.5 版,对 rar 标准进行了更改。从那时起,我们选择的库SharpCompress因该版本生成的任何档案而失败:

可以在此处下载新存档的示例。7zip 在没有问题的情况下打开此文件,这就是为什么我知道存档没有损坏的原因。

还有哪些其他库支持在 .NET 中读取 rar 档案?理想情况下,除了 Windows 之外,该库还应该在 mono/FreeBSD 上工作。

0 投票
1 回答
2251 浏览

c# - 如何使用 sharpcompress 解压缩 .xz (lzma2) 文件

我已经下载了 SharpCompress 源代码并创建了一个简单的控制台应用程序来解压缩一个小的 .xz 文件。在 github 站点上的几个不同示例和 stackoverflow 上的其他示例之后,我找不到任何实际适用于“解压缩”.xz 文件的组合,也找不到任何说明或文档。有没有人真正能够使用 SharpCompress “解压缩” .xz 文件?

此特定代码引发异常“无法确定压缩流类型。支持的阅读器格式:Zip、GZip、BZip2、Tar、Rar、LZip、XZ'

以下代码效果更好(不会引发错误),但 Entry.Key 值是意外的或乱码。

0 投票
2 回答
1951 浏览

c# - C#:以编程方式创建拆分 zip 文件

我想从一个大约 1.5GB 的文件夹创建一个 zip 文件,并将该 zip 文件分成 100MB 的块。我在这方面找到了很多线索,但对我来说没有什么能解决的。

首先我尝试了 System.IO.Compression,但发现它不支持拆分 zip 文件(如果我错了,请纠正我!)。

接下来我尝试了 Ionic.zip,它看起来超级简单,但是我创建的每组文件都以某种方式损坏(例如,以下使用字体目录作为测试目录的代码创建了一组我不能然后使用 winzip 或 winrar 打开或解压缩为存档):

最后,我尝试了 7z.dll 和 SharpCompress。使用命令行和 7z.exe 文件,以下工作完美:

但是下面的代码给出了错误“值不在预期范围内”。

我还尝试了以下方法(试图弄清楚命令行开关在 SharpCompress 中的工作方式),它确实创建了一个 zip 文件,但没有将其拆分:

有谁知道为什么上述任何方法都不起作用?或者还有其他我还没有尝试过的人们已经开始工作的方式吗?

谢谢!

0 投票
1 回答
475 浏览

javascript - 在 Javascript 中解压缩 bzip2 数据

我最终必须使用如下所示的 Javascript 文件中的一些数据:

注意: base64 只是说明性的。

GetTripsDataCompressed()返回一个base64字符串,该字符串派生为使用JSON.NET转换为 JSON 的对象数组,然后使用SharpCompress将生成的字符串压缩为 bzip2 ,生成的内存流经过 Base64 编码。

这就是我所拥有的,无法改变。

我正在努力寻找一个 bzip2 JavaScript 实现,它将获得以下结果:

并将 rawBzip2Data 转换回 JSON 数组的字符串。我不能使用compressjs之类的东西,因为我需要支持 IE 10,并且因为它使用类型化数组,这意味着 IE10 支持不可用。

所以看来我最好的选择是https://github.com/antimatter15/bzip2.js但是因为我没有创建一个档案,只有 bzip2 一个字符串,它会Uncaught No magic number found在执行后引发错误:

那么任何人都可以在这里帮助我使用符合 IE 10 的脚本从 JavaScript 中解压缩 BZip2、Base64 编码的字符串吗?最终,我不在乎它是使用https://github.com/antimatter15/bzip2.js还是其他一些本机 JavaScript 实现。

0 投票
1 回答
328 浏览

c# - 从多部分 rar 文件 c# 获取卷文件

我在同一个文件夹中有多部分 RAR 文件,我想检查 RAR 的所有部分是否存在。我正在使用 SharpCompress v0.24,这是我的代码:

但我无法获得卷的完整文件名。然后我使用 SevenZipSharp v 0.64 和 7z.dll 版本 19,这是我的代码:

但后来我得到了错误:

无效的存档打开/读取错误!它是否已加密并且提供了错误的密码?如果您的存档是异国情调的,则 SevenZipSharp 可能没有其格式的签名,因此错误地认为它是 TAR

请注意,WinRAR 程序似乎会更改 RAR 文件格式,因为我创建了一个版本为 5.71 的 RAR 文件,当我尝试使用旧版本的 WinRAR 打开它时,它无法正常打开,我的意思是文件格式不正确。

这同样适用于 SevenZipSharp。如果我打开自 2014 年以来创建的旧 RAR 文件,它可以正常打开,但是当我打开使用 WinRAR v 5.71 创建的 RAR 文件时,它会引发此错误。

那么现在如何获取多部分 RAR 文件的所有部分文件名?

谢谢你的帮助。

0 投票
0 回答
112 浏览

c# - SharpCompress.Rar IEntry解压,写入StorageFile

我编写此代码以使用 SharpCompress 从 Rar 文件中提取 IEntries(我不想向用户询问广泛的FileSystemAccess 功能),因此我正在使用流。有没有办法让它更快?我的代码很慢。

0 投票
0 回答
577 浏览

c# - 如何使用 SharpCompress 从受密码保护的 .rar 存档中提取文件?

我想从给定的 .rar 存档中提取文件,该存档受密码保护。我有以下内容:

但它会在密码正确和错误时提取损坏的文件。

0 投票
0 回答
90 浏览

c# - 本地驱动器上的 UWP SharpCompress 访问异常,为什么?

我正在尝试使用 SharpCompress 从我的 UWP 应用程序中读取 .rar 文件。它在网络共享上运行良好,我可以从中读取存档没问题,但我在本地系统上任何地方的文件上都得到 System.UnauthorizedAccessException,包括例如 USB 驱动器。我可以通过其他方法访问这些文件,例如 StorageFile。BroadFileSystemAccess 是打开还是关闭都没有区别。我在 C# 和 Vb.net 中都尝试过这是我在 C# 中的测试应用程序的代码。异常发生在 ArchiveFactory.Open。

我也可以使用 .net 压缩方法读取 Zip 文件,但它们不能处理 rar 文件,因此需要 SharpCompress。

这是我第一次使用 SharpCompress,我完全被难住了。有什么想法吗?

0 投票
1 回答
113 浏览

wpf - VS2019 显示我无法从系统中找到或删除的名为“**”的虚拟文件夹和文件

我的 VS2019 解决方案带有一个 WPF 项目,已开始显示一个名为“**”的虚拟文件夹,其中包含以下文件树:

并且因为这些文件是用非法语法命名的,VS 给出了一个错误:System.ArgumentException: Illegal characters in path,我的其余目录/文件现在被标记为 Excluded,大概是因为它无法读取这些幻影非法命名的文件。

我正在处理的项目使用 SharpCompress 对 rar、zip 和 7z 文件进行大量文件处理和解压缩,因此我有可能不小心创建了一个空白或“**”目录,这会造成混乱某处,但这仍然很奇怪,因为我什至无法删除这些东西,因为它们已经存在。

这些文件存在于解决方案的根目录中,并且仅存在于 Visual Studio 的解决方案资源管理器窗口中。我在 Windows 文件资源管理器、CMD 或 Powershell 中看不到它们。我在 csproj 中看不到它们……我在任何地方都看不到它们。

我尝试过的修复:

  • 重新启动 Visual Studio
  • 删除 bin/obj 文件夹
  • 删除 csproj.user 文件
  • 删除 .vs 文件夹
  • 重命名幻影文件(如果我这样做,我会得到第二个幻影文件,其名称是我选择的,并且“**”命名的文件仍然存在)
  • 在整个解决方案中搜索“**”(一无所获)

目前我只能推测我的项目是闹鬼的。

路径中非法字符的完整 VS 错误是:

0 投票
0 回答
34 浏览

c# - SharpCompress 和压缩文件名问题

我有一个 SharpCompress 库,可以解压缩 7z 文件,但问题是有时我有一个文件名已损坏的存档,在 7z 管理器中它看起来像:

在此处输入图像描述

代码很简单:

结果是

System.ArgumentException:路径中的非法字符

但只有名称已损坏,内容正确。所以 7z 管理器会处理它,将这些符号更改为 _ char。我的问题是 SharpCompress 可以用同样的方式处理这个问题,有没有办法在使用 SharpCompres 解包之前重命名存档中的文件。

或者在这个事实中,除了使用 7z 的 CLI 命令之外,还有什么方法可以处理这个问题?