相关疑难解决方法(0)

如何使用.NET创建7-Zip压缩文件?

如何从C#控制台应用程序创建7-Zip存档?我需要能够使用常规的,广泛使用的7-Zip程序来提取档案.


以下是我的结果,提供的示例作为此问题的答案

  • "淘汰"到7z.exe - 这是最简单,最有效的方法,我可以确认它运行良好.正如workmad3所提到的,我只需要保证所有目标机器上都安装了7z.exe,这是我可以保证的.
  • 7Zip内存压缩 - 这是指在发送给客户端之前"在内存中"压缩cookie; 这种方法似乎有点前途.包装器方法(包装LZMA SDK)返回类型byte[].当我将byte[]数组写入文件时,我无法使用7-Zip(File.7z is not supported archive)提取它.
  • 7zSharp包装器(在CodePlex上找到) - 这包装了7z exe/LZMA SDK.我从我的应用程序引用了该项目,并成功创建了一些存档文件,但我无法使用常规的7-Zip程序(File.7z is not supported archive)提取文件.
  • 7Zip SDK又名LZMA SDK - 我想我不够聪明,无法弄清楚如何使用它(这就是我在这里发布的原因)...任何工作代码示例,演示创建一个能够被提取的7zip存档常规7zip程序?
  • 用于7-Zip存档DLL的CodeProject C#(.NET)接口 - 仅支持从7zip存档中提取...我需要创建它们!
  • SharpZipLib - 根据他们的FAQ,SharpZipLib不支持7zip.

.net c# compression 7zip

97
推荐指数
5
解决办法
9万
查看次数

如何提供大量文件作为应用程序的一部分

所以,我的应用程序依赖于大量的小文件。实际数字约为 90,000 人。现在,我使用一个需要访问这些文件的组件,但它接受这些文件的唯一方法是使用 URI。

到目前为止,我在开发应用程序时只是将包含所有文件的目录添加到我的调试文件夹中。然而,现在我必须考虑部署。我可以选择哪些选项将所有这些文件包含在我的部署中?

到目前为止,我已经提出了几种不同的解决方案,但没有一个能够完全发挥作用。首先是将所有文件添加到安装程序中,然后安装程序会将它们复制到其位置。这至少在理论上是可行的,但是它会使维护安装程序(使用 VS 生成的标准 MSI 安装程序)变得绝对是地狱。

我想到的下一个选项是将它们压缩到一个文件中,并将其添加为安装程序的一部分,然后使用自定义操作解压缩它们。然而,标准库似乎不支持复杂的 zip 文件,这使得这是一个相当困难的选择。

最后,我意识到我可以创建一个单独的项目并将所有文件添加为该项目中的资源。我不知道的是指向其他程序集中存储的资源的 URI 是如何工作的。意思是,所有支持“application://,,,:Assembly”格式的东西都是“标准”吗?

那么,这些是我唯一的选择,还是还有其他选择?解决这个问题的最佳选择是什么?

c# resources zip embedded-resource

5
推荐指数
1
解决办法
347
查看次数

标签 统计

c# ×2

.net ×1

7zip ×1

compression ×1

embedded-resource ×1

resources ×1

zip ×1