C# 从受密码保护的Zip文件中提取

C# 从受密码保护的Zip文件中提取,c#,ssis,.net-4.5,dotnetzip,script-task,C#,Ssis,.net 4.5,Dotnetzip,Script Task,这是我的要求,我需要从受密码保护的压缩文件中提取文件。我想知道是否有可用的代码段。我正在使用SSIS从FTP下载这些压缩文件。4.5框架是否有我可以使用的最新更新 更新: 我现在引用了该文件并尝试了一个示例,但现在我得到了一个异常,我甚至尝试在脚本任务中添加一个断点,但仍然得到了一个异常 例外情况: at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boo

这是我的要求,我需要从受密码保护的压缩文件中提取文件。我想知道是否有可用的代码段。我正在使用SSIS从FTP下载这些压缩文件。4.5框架是否有我可以使用的最新更新

更新:

我现在引用了该文件并尝试了一个示例,但现在我得到了一个异常,我甚至尝试在脚本任务中添加一个断点,但仍然得到了一个异常

例外情况:

   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams)
   at Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTATaskScriptingEngine.ExecuteScript()
快照:

代码:

PS:我是新来的C#

支持密码保护。它是一个NuGet包,允许您从密码保护的zip文件中提取,如下所示(从链接中获取和修改):

在我链接的C#示例页面上还有很多类似的“代码片段”。

支持密码保护。它是一个NuGet包,允许您从密码保护的zip文件中提取,如下所示(从链接中获取和修改):


在我链接到您的C#示例页面上还有很多类似的“代码片段”。

我下载了zip并添加为参考!!但是我得到了一个例外,那么这个程序集应该在GAC中注册吗?不,这不是GAC程序集,它是第三方程序包。从package manager控制台,运行
Install package DotNetZip
,然后在项目中将引用添加到
Ionic.Zip
。你的异常是怎么说的?安装完成了。仍然有同样的问题。我正在编辑这个问题,但有一个例外。我下载了zip并添加了它作为参考!!但是我得到了一个例外,那么这个程序集应该在GAC中注册吗?不,这不是GAC程序集,它是第三方程序包。从package manager控制台,运行
Install package DotNetZip
,然后在项目中将引用添加到
Ionic.Zip
。你的异常是怎么说的?安装完成了。仍然有同样的问题。我正在编辑带有异常的问题。您能否提供整个异常,特别是与该错误相关的消息以及任何内部异常?正如我之前所说的,我尝试在代码中使用断点,但它甚至不指向该行,我得到的只是此异常。。。。那么,调用DotNetZip API是否会引发异常?在没有看到代码的情况下,很难知道发生了什么,但是看起来您可能还有其他问题。OK也会提供代码!!好的,你的问题似乎与我们讨论的主题无关,我相信图书馆的运作符合设计。在快速搜索之后,您可能想要查看消息线程。乍一看,其他一些人似乎在使用SSI时遇到了非常类似的问题。如果在解决此问题后仍然存在问题,请让我知道您是否可以提供整个异常,特别是与该错误相关的消息以及任何内部异常?正如我之前所说,我尝试在代码中使用断点,但它甚至不指向该行,我得到的只是此异常。。。。那么,调用DotNetZip API是否会引发异常?在没有看到代码的情况下,很难知道发生了什么,但是看起来您可能还有其他问题。OK也会提供代码!!好的,你的问题似乎与我们讨论的主题无关,我相信图书馆的运作符合设计。在快速搜索之后,您可能想要查看消息线程。乍一看,其他一些人似乎在使用SSI时遇到了非常类似的问题。如果您在解决此问题后仍有问题,请让我知道
try
    {
            string zipfilePath = @"C:\ZipFiles";
            string zipPassword = "qwerty";
        using (ZipFile zip = new ZipFile())
        {
            zip.Password = zipPassword;
            zip.AddFile("File-01.txt");
            zip.AddFile("File-02.txt");
            zip.AddFile("File-03.txt");
            zip.AddFile("File-04.txt");
            zip.Save(zipfilePath + "AllFiles.zip");
        }
    }
    catch (Exception e)
    {
        MessageBox.Show(e.ToString());
    }
string baseDirectory = "C:\\output";
string password = "password";

using (ZipFile zip = ZipFile.Read("MyArchive.zip"))
{
    ZipEntry e = zip["MyFile.txt"];
    e.ExtractWithPassword(baseDirectory, password);
}