Wie zum extrahieren von zip-Datei Inhalt in einen Ordner .NET 4.5

Folgende Frage die Antwort scheint zu beschreiben, wie Sie zum extrahieren von Dateien über das System.IO.Commpression.ZipFile.ExtractToDirectory method invocation. "ZipFile" scheint nicht zu existieren .NET 4.5, wenn das hinzufügen einer Referenz zu System.IO.Die Komprimierung. Wie kann ich extrahieren von Dateien aus einem *.zip-Datei in .NET 4.5?

Wie Entpacke alle .Zip-Datei aus dem Ordner mit C# 4.0 und ohne Verwendung von OpenSource Dll?

Dies scheint zu zeigen, wie, um Dateien zu komprimieren. Aber ich bin auf der Suche nach der Rückseite.

Zipping Dateien in .NET 4.5

Sogar diese Frage Verweise "ZipFile" im source-code. Aber ich kann nicht scheinen zu finden, diese Klasse.

Gewusst wie: extrahieren Sie einfach die bestimmten Ordner aus einem zip-Archiv in C# .NET 4.5?

Wie zum extrahieren von zip-Datei Inhalt in einen Ordner .NET 4.5

EDIT:

Bemerken, wie 7z.exe (von 7zip-Paket) hat nicht funktioniert. Es muss einen Konflikt mit .NET und 7zip. ZipFile jetzt scheint gut zu funktionieren.

private void extract_Click(object sender, EventArgs e)
{
    string exePath = System.Reflection.Assembly.GetExecutingAssembly().Location;
    exePath = @"C:\test";  //path during troubleshooting

    ////var cmd1 = "cd \"" + exePath + "\"";
    ////ExecuteCommand(cmd1, 100, exePath);

    //var cmd2 = "\"" + exePath + "\\7z.exe\" x \"" + exePath + "\\source.zip\"";
    //ExecuteCommand(cmd2, 100, exePath);

    string zipPath = exePath + "\\source.zip";
    string extractPath = exePath;

    //needed explicit reference to System.IO.Compression.FileSystem
    ZipFile.ExtractToDirectory(zipPath, extractPath);


}

private static int ExecuteCommand(string command, int timeout, string dir)
{
    var processInfo = new ProcessStartInfo("cmd.exe", " /C " + command)
    {
        CreateNoWindow = true,
        UseShellExecute = false,
        WorkingDirectory = dir,
    };

    var process = Process.Start(processInfo);
    process.WaitForExit(timeout);
    var exitCode = process.ExitCode;
    process.Close();
    return exitCode;
}
  • ZipeFile.ExtractToDirectory MSDN gilt .net 4.5 was ist das Problem und oder problem..?
  • Ich denke, Sie müssen einen Verweis auf System.IO.Compression.FileSystem
  • using System; using System.IO; using System.IO.Compression;
  • petelids - Dateisystem bekommt einen roten schnörkeligen markiert. Mein Fehler ist "Der name 'ZipFile' existiert nicht im aktuellen Kontext". Ich bin mit Visual Studio 2013 Community Edition, und meine Projekttyp Windows Forms-Anwendung verwenden .NET 4.5. MethodMan - zur Kenntnis genommen; noch Fehlermeldungen
  • yep, die ZipFile Klasse ist im namespace System.IO.Commpression aber es ist in der assembly System.IO.Die Komprimierung.Dateisystem, so benötigen Sie einen Verweis auf System.IO.Compression.FileSystem.dll um diese Klasse verwenden
  • yep, das hat geklappt!

InformationsquelleAutor MacGyver | 2016-01-13
Schreibe einen Kommentar