这是我的要求,我需要从受密码保护的压缩文件中提取文件。我想知道是否有任何代码片段可用。我正在使用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#
的新手答案 0 :(得分:6)
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#例子页面上一样。