ElwigData: Check zip file integrity
All checks were successful
Test / Run tests (push) Successful in 1m59s

This commit is contained in:
2025-08-06 12:31:19 +02:00
parent 73fe4531cc
commit d3157e4d48
5 changed files with 21 additions and 5 deletions

View File

@@ -75,6 +75,7 @@ namespace Elwig.Helpers.Export {
foreach (var filename in filenames) {
// TODO read encrypted files
using var zip = ZipFile.Open(filename, ZipArchiveMode.Read);
await zip.CheckIntegrity();
var version = zip.GetEntry("version");
using (var reader = new StreamReader(version!.Open(), Utils.UTF8)) {
@@ -370,11 +371,12 @@ namespace Elwig.Helpers.Export {
}.Export(filename);
}
public static void ImportDatabase(string filename) {
public static async Task ImportDatabase(string filename) {
var oldName = Path.ChangeExtension(App.Config.DatabaseFile, ".old.sqlite3");
var newName = Path.ChangeExtension(App.Config.DatabaseFile, ".new.sqlite3");
try {
using (var zip = ZipFile.Open(filename, ZipArchiveMode.Read)) {
await zip.CheckIntegrity();
var db = zip.GetEntry("database.sqlite3")!;
db.ExtractToFile(newName, true);
}