1

これは私の要件です。パスワードで保護された zip ファイルからファイルを抽出する必要があります。利用可能なコード スニペットがあるかどうかを知りたいです。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 に答える