Irgendwie erstellt meine Konsole Anwendung leere (0 Byte) Zip-Dateien während der Ausführung. Aber wenn ich einen Haltepunkt setze und F10 verwende, um die Verpackungsfunktion zu durchlaufen, wird Zip normalerweise erstellt.Konsole Anwendung erstellt leere Zip-Dateien
Dieses Verhalten ist das gleiche auf zwei Computern, ich habe bereits versucht, mit DotNetZip und SharpZipLib ohne Wirkung zu ziehen.
Die Zuziehen Funktion (mit System.IO.Packaging) ist folgende:
private static void CreateModVersionZip(string path, string zipname)
{
using (Package zip = System.IO.Packaging.Package.Open(zipname, FileMode.OpenOrCreate))
{
string destFilename = ".\\mods\\" + Path.GetFileName(path);
Uri uri = PackUriHelper.CreatePartUri(new Uri(destFilename, UriKind.Relative));
if (zip.PartExists(uri))
{
zip.DeletePart(uri);
}
PackagePart part = zip.CreatePart(uri, "", CompressionOption.Normal);
using (FileStream fileStream = new FileStream(path, FileMode.Open, FileAccess.Read))
{
using (Stream dest = part.GetStream())
{
CopyStream(fileStream, dest);
}
}
}
}
Wie es richtig funktioniert?
Ich kann Zipping Snippets für SharpZipLib und DotNetZip bereitstellen, wenn Sie sie benötigen.
Versuchen Sie, eine Datei oder ein Verzeichnis zu komprimieren? –
Was genau macht 'CopyStream'? Werden die Ströme gespült? – ArgusMagnus
@ConnorWright Ich versuche, eine .jar-Datei zu komprimieren –