问题标签 [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 投票
2 回答
3037 浏览

c# - c# sharpcompress : How to check progress

With the above code i'm able to extract the rar file, however i would like to show the progress through the console. How can i check the progress?

0 投票
1 回答
140 浏览

c# - Dropbox 文件夹下载问题 (c#)

我正在通过网络链接自动从我的 Dropbox - 存储(?)下载整个文件夹,例如:https://www.dropbox.com/sh/bunchOfLetters/somthnsomthn?dl=1只有一个基本的网络客户端:

该文件夹自然是一个 .rar 文件(由于 Dropbox 的下载系统),如果我尝试手动打开文件(通过 Winrar),则完全没有问题。现在问题来了....如果我尝试使用任何类型的自动库(如 unrar 或 SharpCompress),它总是给我一个“损坏的标题”,就好像下载不会得到所有内容或文件刚刚坏了..但仍然用 Winrar 打开它就可以了。

如果有人知道如何以及为什么;我会很高兴听到你的想法。

编辑:

这是我用于 SharpCompress 的功能:

如果有人对 unrar 感兴趣:..我知道它做得不好,但它仍然适用于普通文件......只是不是 Dropbox 的

0 投票
1 回答
1938 浏览

c# - 使用 SharpCompress 识别与给定 RAR 存档关联的卷

TL;博士

该站点主页上给出的示例代码无法编译。如何列出多部分 RAR 文件中的所有卷?

问题定义

我有一个包含许多多部分 RAR 文件的 Windows 10 文件夹。'root' rar 及其部分需要被隔离,然后移动到它们自己的文件夹中。我可以通过创建一个文件夹并检查文件名来手动执行此操作,以便根 rar 和“part01.rar”、“part02.rar”等都在同一个目录中。

当有几十个多部分文件时,手动过程很乏味,所以我正在编写一个 C# 应用程序。到目前为止,我了解到的是,这些多部分 RAR 文件的命名约定不一致,这让我陷入了检查它们的文件名并通过字符串操作推断它们所属的位置的尴尬练习。不酷。

因此,我导入SharpCompress是为了科学准确地获取文件名。在其文档页面上有一个示例,它似乎完全符合我的要求。我已经围绕它包装了一个方法,现在将它作为“我尝试过的”呈现给您。

...并注意 VS 生成的红色文本...

在此处输入图像描述

它无法编译,因为 'FilePath' 无法解析!我有错误的框架吗?我在 VS2013 下使用 .NET 4.5。理论上,这里应该已经有很多问题了,因为主页上的文档示例没有编译,但没有(我检查过)。

问题:如何使用 SharpCompress 识别与给定 RAR 关联的所有卷,以便开发人员可以使用它们的名称。


注意:我也可以使用 WinRar API 将文件解压到它们自己的目录中,但这不是客户想要的。 稍后我将实际解压缩它们,目的是将所有关联的卷放在它们自己的文件夹中。

0 投票
1 回答
411 浏览

.net - 如何使用 Sharpcompress .net 从 ZIP 存档中删除单个条目

我正在尝试从 ZIP 存档中删除一个条目,我使用的代码是:

但是,当我尝试使用 winzip 将另一个文件添加到创建的存档中时,它会出错。

那么,有没有正确的方法来使用这个库删除一个条目?

提前致谢

0 投票
1 回答
1043 浏览

c# - 将 7z 文件提取到目录 c# 时的性能问题

我正在使用 SharpCompress 库来提取 .7z 文件,但提取 60mb .7z 文件大约需要 35 分钟。这是正常的还是我在性能方面做错了什么?.7z 文件以高压缩模式和 LZMA 类型压缩。

0 投票
2 回答
2617 浏览

c# - SharpCompress & LZMA2 7z archive - very slow extraction of specific file. Why? Alternatives?

I have a 7zip archive craeted with LZMA2 compression (compression level: ultra). The archive contains 1,749 files, which in total originally had a size of 661mb. The zipped file is 39mb in size.

Now I'm trying to use C# to extract a tiny (~200kb'ish) single file from this archive.

I'm getting the corresponding IArchiveEntry from the IArchive (which works relatively fast), but then calling IArchiveEntry.WriteToFile(targetPath) takes around 33 seconds! And similarly long if I write to a memory stream instead. (edit: When I'm running this on a 7z LZMA2 archive with compression level = normal, it still takes 9 seconds)

When I'm opening the same archive in the actual 7zip application and extract the same file from there, it takes around 2-3 seconds only. I suspected it's some sort of multicore (7zip) vs single core (SharpCompress probably?) thing, but I don't notice any CPU usage spike during decompression with 7zip.. maybe its too fast to be noticeable though..

Does anyone know what could be the issue for such slow speeds with SharpCompress? Am I maybe missing some setting or using a wrong factory (ArchiveFactory) ?

If not - is there any C# library out there that might be significantly faster at decompressing this?

For reference, here's a sketch of how I'm using SharpCompress to extract:


Update: For a temporary solution, I'm now including the 7zr.exe from the 7zip SDK in my application, and run this in a new process to extract a single file, reading the process' output into a binary stream. This works in around ~3 seconds compared to the ~33seconds with SharpCompress. Works for now, but kind of ugly.. so still curious why SharpCompress seems to be so slow there

0 投票
1 回答
1207 浏览

c# - 使用通用流通过 SharpCompress 创建压缩文件

由于如果我想同时使用 dotnet core + net461,System.IO.Compression现在似乎遥不可及,因此我尝试使用SharpCompress.

“读取 zip”部分很简单,但我很难找出如何写入 zip 流。

该项目的 wiki有点过时了。这是我发现的唯一适用于写入流的示例。我试图遵循它并使其适应我的需要,但我被它抛出的异常困住了:

如果它有帮助,这就是我使用库所使用的(并且它有效,但仅在 dotnet 核心中)System.IO.Compression

0 投票
1 回答
642 浏览

c# - Sharpcompress:上下文中不存在关键字

我正在尝试从我的 C# 项目中提取 .tgz 文件,并尝试遵循此问题的答案:

使用 C# 解压缩 tar 文件

但是,此代码示例对我不起作用:

我收到两个错误:

1) ExtractOptions“在当前上下文中不存在”。我成功地使用了 System.IO 和 SharpCompress.Readers,但我找不到 ExtractOptions 的位置。

2)文件“是一种方法,在给定的上下文中无效”。我不知道为什么会这样!

如果有帮助,我可以通过简单的方法成功地从同一路径中提取 .zip 文件:

如果有更好的方法来提取 .tgz 文件也会有所帮助!

谢谢

0 投票
1 回答
740 浏览

c# - 使用 SharpCompress 包的 c# 中的 RarHeader:16 无效

我在使用sharpcompress包在c#中提取rar文件时遇到错误,我在Nunrar、sevenzip提取器和这么多包中尝试过,但面临同样的错误

0 投票
1 回答
1324 浏览

c# - Sharpcompress 多 rar 提取进度

我正在构建一个从 tar 和 rar 档案中提取的应用程序。我可以根据目标中包含的 rar 的数量以及每一个被提取来报告目标的进度。在 rars 中有一个文件跨越几卷。我已经使用了单元测试示例中的代码

问题是进程在当前条目被提取之前不会报告。