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.
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?
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!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie fügen Sie einen Verweis auf die
System.IO.Compression.FileSystem
Montage.Jede Bibliothek, die Klasse hat ein MSDN-Seite. Dies ist die eine für ZipFile.
Beachten Sie die Spezifikation der namespace und die Montage im oberen Bereich.