在c#代码中提取7zip
本文关键字:提取 7zip 代码 | 更新日期: 2023-09-27 18:13:30
我需要在c#中使用7zip。没有控制台,只是与7zSharp.dll ?+我在这里找到了一些数据
http://7zsharp.codeplex.com/releases/view/10305,但我不知道如何使用它(-我可以创建。bat(.cmd)文件,但我需要通过dll文件)确切地说:我需要提取。7z文件与键)
从7zip.com下载独立控制台版本并将其添加到您的项目中。
你需要在项目中添加这3个文件:
- 7 za.exe
- 7 za.dll
- 7 zxa.dll
别忘了在参数设置里写上Copy to Output Directory。
提取存档文件:
public void ExtractFile(string sourceArchive, string destination)
{
string zPath = "7za.exe"; //add to proj and set CopyToOuputDir
try
{
ProcessStartInfo pro = new ProcessStartInfo();
pro.WindowStyle = ProcessWindowStyle.Hidden;
pro.FileName = zPath;
pro.Arguments = string.Format("x '"{0}'" -y -o'"{1}'"", sourceArchive, destination);
Process x = Process.Start(pro);
x.WaitForExit();
}
catch (System.Exception Ex) {
//handle error
}
}
创建存档:
public void CreateZip(string sourceName, string targetArchive)
{
ProcessStartInfo p = new ProcessStartInfo();
p.FileName = "7za.exe";
p.Arguments = string.Format("a -tgzip '"{0}'" '"{1}'" -mx=9", targetArchive, sourceName);
p.WindowStyle = ProcessWindowStyle.Hidden;
Process x = Process.Start(p);
x.WaitForExit();
}
7zip的作者提供了LZMA SDK和良好的文档,应该能够实现您想要的。SDK包含c#代码,可以进行压缩/解压缩。
另一个选择是使用c# (.NET)接口之类的7-Zip归档dll
更新:另一个用户问了一个类似的问题:我如何用。net创建7-Zip存档?答案有几个与我提供的相同的链接,以及更多的链接。
看起来这个库不支持加密文件。
7zSharp库似乎不支持密码作为输入,只是一个zip文件。
库只调用7zip的。exe,因此您可以下载源代码并修改它以接受一个密码参数,然后将其传递给可执行文件。
Aspose.ZIP可用于轻松提取zip文件。通过NuGet包管理器下载。
PM> Install-Package Aspose.Zip
下面的代码展示了如何使用c#以编程方式打开或提取7z文件:
using (SevenZipArchive archive = new SevenZipArchive("Sample.7z"))
{
archive.ExtractToDirectory(dataDir + "Sample_ExtractionFolder");
}
下面的代码解释了如何使用c#以编程方式提取或解压缩密码保护的7zip文件:
using (SevenZipArchive archive = new SevenZipArchive("Sample_Encrypted.7z"))
{
archive.ExtractToDirectory("Sample_Encrypted7zip", "password");
}
来源Farhan Raza的博客文章:https://blog.aspose.com/2021/04/28/open-extract-7zip-7z-file-unzip-in-csharp-asp-net/