Page 1 of 1

Aktualisieren einer ZIP -Datei mithilfe von MemoryStream

Posted: 13 May 2025, 00:23
by Anonymous
Hallo, ich arbeite derzeit an einer Lösung, um mehrere Zip -Dateien zu öffnen und eine bestimmte Datei im Ordner mit Reißverschluss zu aktualisieren. Ein großer Fan von Temp.json zum Schreiben mit der Änderung und dann auch, um in die Originaldatei zu kopieren, aber dies funktionierte auch nicht. < /p>

Code: Select all

public void OpenFile(string path)
{
using (MemoryStream stream = new MemoryStream())
{
using (FileStream fs = new FileStream(path, FileMode.Open))
{
fs.CopyTo(stream);
stream.Position = 0;
using (ZipArchive zip = new ZipArchive(stream, ZipArchiveMode.Update))
{
ZipArchiveEntry entry = zip.GetEntry("course/en/course.json");
using (Stream entryStream = entry.Open())
{
StreamReader str2 = new StreamReader(entryStream);
var fs2 = new FileStream("temp.json", FileMode.OpenOrCreate);
using (StreamWriter str1 = new StreamWriter(fs2))
{
string line = null;
do
{
line = str2.ReadLine();
if (line != null)
{
if (line.Contains("_partNumber"))
{
line = '\u0022' + "_partNumber" + '\u0022' + ": " + '\u0022' + partNumber + '\u0022' + ",";
}

str1.WriteLine(line);
}
} while (line != null);

entryStream.SetLength(0);
fs2.CopyTo(entryStream);
}
fs2.Close();
File.Delete("temp.json");

}
};
};
}
}