1

这是我的要求,我需要从受密码保护的压缩文件中提取文件。我想知道是否有任何可用的代码片段。我正在使用 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()

快照: 在此处输入图像描述

代码:

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());
    }

PS:我是 C# 新手

4

1 回答 1

7

DotNetZip支持密码保护。它以 NuGet 包的形式提供,并允许您从受密码保护的 zip 文件中提取,如下所示(从链接中获取和修改):

string baseDirectory = "C:\\output";
string password = "password";

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

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

于 2015-02-17T13:11:52.847 回答